简介
什么是 MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
编写mybatis核心配置文件和工具类
mybatis核心配置文件
<?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?useSSl=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
//第一步获取sqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//有了SqlSessionFactory就可以创建实例
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
}
编写代码
1.实体类
package pojo;
public class test {
private String Name;
private int Age;
private int Score;
private String Address;
public test() {
}
public test(String name, int age, int score, String address) {
Name = name;
Age = age;
Score = score;
Address = address;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
public int getScore() {
return Score;
}
public void setScore(int score) {
Score = score;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}
@Override
public String toString() {
return "test{" +
"Name='" + Name + '\'' +
", Age=" + Age +
", Score=" + Score +
", Address='" + Address + '\'' +
'}';
}
}
2.Dao接口
public interface testDao {
List<test> getteseList();
}
3.接口实现类
<?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="org.mybatis.example.BlogMapper">
<select id="getteseList" resultType="pojo.test">
select * from test.test
</select>
</mapper>
错误:Type interface dao.testDao is not known to the MapperRegistry.
每一个Mapper XML都需要在mybatis核心文件中注册!
<!--在build中配置resources,防止资资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
实现数据库基本的增删改查操作
1.编写接口
//根据ID查询用户 int gettestBYId(int id);
2.编写对应的mapper中的sql语句
<select id="gettestById" parameterType="int" resultType="pojo.test">
select * from test.test where id = #{id}
</select>
3.测试 (增删改需要提交事务)