Mybatis使用步骤
先创建configuration文件,xml格式写一个mapper准备工作结束创建一个SqlSessionFactory增删改查
先创建configuration文件,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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/ex3"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="User.xml"/>
</mappers>
</configuration>
这里的 mapper 标签是用来表示使用哪个哪些mapper的,mapper是用来表示操作表格的封装文件 有四种属性。我忘了。resource表示mapper路径
写一个mapper
放到resources文件夹里
<?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">
<resultMap id="result" type="org.example.User">
<result property="id" column="id"/>
<result property="username" column="username"/>
<result property="email" column="email"/>
<result property="password" column="password"/>
</resultMap>
<insert id="insert" parameterType="org.example.User">
INSERT INTO User (username, email, password)
VALUES (#{username}, #{email}, #{password});
</insert>
</mapper>
resultmap是select出来的格式 parameterType是在Java文件中使用时的参数类型,这里选择自建的User类,路径为compile之后的 以target/classes为准的相对路径,也就是compile之前的以src/main/java文件夹为准的相对路径
准备工作结束
写个Java程序
创建一个SqlSessionFactory
Reader reader
= Resources
.getResourceAsReader(resource
);
SqlSessionFactory factory
= new SqlSessionFactoryBuilder().build(reader
);
SqlSession sqlSession
= factory
.openSession();
这个session就是可以执行增删改查了
增删改查
User user
= new User("1133", "1133@qq.com", "1133");
int insert
= sqlSession
.insert("User.insert", user
);
这里的User.insert是因为configuration.xml文件里的mapper里有个User.xml 而在User.xml里的mapper的namespace又是User,所以这样子找到了User, 然后mapper里的id又有个insert,就找到了User.insert insert接收的参数parameterType又是User,所以参数为User类