Mybatis入门(基于MySQL)
1、新建一个Java工程(当然,也可以新建一个web项目)
目录结构如图所示
2、将mybatis和mysql相关jar包拷贝到lib文件夹(可以去相应的官网下载)
3、选中所有的jar包–>右键–>build path–>add to buildpath
4、在数据库中创建user表
5、创建usr的po类(一定要和自己数据库中user表的字段相对应)
package com.emperor.po;
import java.util.Date;
public class User {
private Integer id;
private String username;
private String password;
private Date birthday;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + ", birthday=" + birthday + "]";
}
}
6、sqlmap包下创建User.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="user">
<!-- parameterType:参数类型,resultType结果类型 -->
<select id="findUserById" parameterType="int" resultType="com.emperor.po.User">
select * from user where id = #{id}
</select>
</mapper>
7、SqlMapConfig.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/emperor?characterEncoding=utf-8&useSSL=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 将User.xml -->
<mapper resource="sqlmap/User.xml"/>
</mappers>
</configuration>
8、新建一个测试类Demo1
package com.emperor.mybatis;
import java.io.IOException;
import java.io.InputStream;
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 org.junit.Test;
import com.emperor.po.User;
public class Demo1 {
@Test
public void findUserById() throws IOException {
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlSessionFactory工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//user与User.xml文件下namespace对应,findUserById与select标签的id一致
//第二个参数(本例参数为1)的类型要和select标签下的parameterType保持一致
//返回结果对应resultType
User user = sqlSession.selectOne("user.findUserById", 1);
System.out.println(user);
sqlSession.close();
}
}
9、最终src目录结构如下
10、log4j.properties
### Global logging configuration
log4j.rootLogger=DEBUG, stdout
### Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n