Mybatis入门程序
1、创建数据库
创建如下的的一个数据库表

2、需求
实现以下功能:
- 根据用户id查询一个用户信息
- 根据用户名称模糊查询用户信息列表
- 添加用户
- 更新用户
- 删除用户
3、创建java工程
4、 导入需要的jar包

5、在classpath下面创建log4j.properties文件
Mybatis使用log4j作为日志输出,因此要创建log4j.properties配置文件。
文件内容如下:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
6、在classpath下创建SqlMapConfig.xml文件
7、创建PO类
public class User {
private int id;
private String username;
private Date birthday;
private String sex;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + ''' +
", birthday=" + birthday +
", sex='" + sex + ''' +
", address='" + address + ''' +
'}';
}
}
8、创建映射文件,user.xml
SELECT LAST_INSERT_ID()
INSERT INTO user(username,birthday,sex,address) VALUE (#{username},#{birthday},#{sex},#{address})
UPDATE user set birthday=#{birthday},sex=#{sex},address=#{address} WHERE id=#{id}
DELETE FROM user WHERE id=#{value}
9、在SqlMapConfig.xml中引入上面的配置文件
10、创建测试类
public class UserTest {
private SqlSessionFactory sessionFactory;
@Before
public void setUp() throws Exception{
//SqlMapConfig.xml相对于classpath的地址
String resource = "config/SqlMapConfig.xml";
//使用inputString读入该配置文件
InputStream in = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象
sessionFactory = new SqlSessionFactoryBuilder().build(in);
}
@Test
public void findUserById(){
//创建SqlSession对象
SqlSession sqlSession = sessionFactory.openSession();
try {
/**
* 执行SqlSession对象的方法
* 第一个参数为:映射文件中的namespace+.+statement id
* 第二个参数为:要传入的参数值
*/
User user = sqlSession.selectOne("test.findUserById",1);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
@Test
public void findUserByName(){
SqlSession sqlSession = sessionFactory.openSession();
try {
List
for (User user:list) {
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
@Test
public void insertUserInfo(){
SqlSession sqlSession = sessionFactory.openSession();
try {
User user = new User();
user.setId(26);
user.setBirthday(new Date());
user.setSex("1");
user.setAddress("甘肃天水");
sqlSession.update("test.insertUserInfo",user);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
public void updateUserInfo(){
SqlSession sqlSession = sessionFactory.openSession();
try {
User user = new User();
user.setUsername("东方不败");
user.setBirthday(new Date());
user.setSex("0");
user.setAddress("黑木崖");
int id =sqlSession.insert("test.updateUserInfo",user);
System.out.println(id);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
@Test
public void deleteUserInfo(){
SqlSession sqlSession = sessionFactory.openSession();
try {
sqlSession.delete("test.deleteUserInfo",28);
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
}

浙公网安备 33010602011771号