package com.tgb.test;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.tgb.mybatis.inter.IUserOperation;
import com.tgb.mybatis.model.Article;
import com.tgb.mybatis.model.User;
/**
* 增加:天机后,必须提交事务,否则不会写入到数据库
* 更新:类似hibernate,要先查出后,之后再更新
* 也有类似的session.commit()
* @author limin
*
*/
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
// 最终实现了从配置文件中配置工厂的初始化
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
public void getUserList(String userName){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
List<User> users = userOperation.selectUsers(userName);
for(User user:users){
System.out.println(user.getId()+":"+user.getUserName()+":"+user.getUserAddress());
}
} finally {
session.close();
}
}
//增加后,必须提交事务,否则不会写入到数据库.
public void addUser(){
User user=new User();
user.setUserAddress("万达广场");
user.setUserName("陆逊");
user.setUserAge(80);
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
userOperation.addUser(user);
session.commit();
System.out.println("当前增加的用户 id为:"+user.getId());
} finally {
session.close();
}
}
//类似hibernate,要先查出后,之后再更新
public void updateUser(){
//先得到用户,然后修改,提交。
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(2);
user.setUserAddress("上海东方明珠宝塔");
userOperation.updateUser(user);
session.commit();
} finally {
session.close();
}
}
/**
* 删除数据,删除一定要 commit.
* @param id
*/
public void deleteUser(int id){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
userOperation.deleteUser(id);
session.commit();
} finally {
session.close();
}
}
public void getUserArticles(int userid){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
List<Article> articles = userOperation.getUserArticles(userid);
for(Article article:articles){
System.out.println(article.getTitle()+":"+article.getContent()+
":作者是:"+article.getUser().getUserName()+":地址:"+
article.getUser().getUserAddress());
}
} finally {
session.close();
}
}
public static void main(String[] args) {
//测试接口返回用户list列表
Test testUser=new Test();
testUser.getUserList("%");
testUser.addUser();
testUser.updateUser();
testUser.deleteUser(2);
testUser.getUserArticles(1);
/*
SqlSession session = sqlSessionFactory.openSession();
try {
// 1、没有使用接口的测试
// 这里传入的参数是从User.xml文件中配置的
//User user = (User) session.selectOne("com.yihaomen.mybatis.model.UserMapper.selectUserByID", 1);
// 2、基于接口的测试:在接口的定义中,selectUserByID方法和配置文件中的方法名要一致,这里传入的是参数
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(1);
System.out.println(user.getUserAddress());
System.out.println(user.getUserName());
} finally {
session.close();
} */
}
}
Mybatis增删改查实例(含联合查询)
5星 · 超过95%的资源 需积分: 50 145 浏览量
2014-07-31
17:07:33
上传
评论 1
收藏 1.05MB ZIP 举报
lmdcszh
- 粉丝: 262
- 资源: 11
- 1
- 2
前往页