1. Mybais搭建
-
将lib包导入项目中
-
将项目重新部署
-
添加log4j.xml配置文件
# 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
-
配置SqlMapConfig文件
```java <?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/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="User.xml"/> </mappers> </configuration> ``` 1-4行固定配置 configuration开始根据提示配置 <environments default="development"> 设置默认目标,根据id寻找 <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/mybatis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="root"/>
-
创建一个实验用实体类
package domain; import java.util.Date; public class User { private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 public User() { } public User(int id, String username, String sex, Date birthday, String address) { this.id = id; this.username = username; this.sex = sex; this.birthday = birthday; this.address = 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", sex='" + sex + '\'' + ", birthday=" + birthday + ", address='" + address + '\'' + '}'; } }
-
配置对应的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"> <!--namespace :命名空间,用于隔离sql语句,后面会讲另一层非常重要的作用。--> <mapper namespace="test"> <!-- id:sql语句的唯一标识 parameterType:指定传入参数的类型 resultType:返回结果集类型 #{}占位符:起到占位作用,如果传入的类型是基本类型 那么#{}中的变量名称可以随便填写 --> <select id="findUserById" parameterType="java.lang.Integer" resultType="domain.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper>
-
写一个测试函数
@Test public void testUserById() throws Exception { String resource = "SqlMapConfig.xml"; //1.通过流将核心配置文件读取出来 InputStream inputStream = Resources.getResourceAsStream(resource); //2.通过核心配置文件创建会话工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); //3.通过会话工厂创建会话 SqlSession openSession = factory.openSession(); //执行 User user = openSession.selectOne("test.findUserById",26); //输出 System.out.println(user); //关闭 openSession.close(); }