第一步:
导入依赖 jar 包
第二步:
在src下创建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>
<!-- 和spring整合后environments配置将废除 development-->
<environments default="default">
<environment id="default">
<!-- 使用jdbc事务管理,事务控制由mybatis完成-->
<transactionManager type="JDBC" />
<!-- 数据库连接池,由mybatis管理 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="自己的账户名" />
<property name="password" value="自己的密码" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/jp/entity/User.xml"/>
</mappers>
</configuration>
第三步:
创建mapper映射文件(主要是对sql的操作),并把地址配置到SqlMapConfig.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进行分类化管理,理解sql隔离
注意:使用mapper代理方法开发,namespace有特殊作用
-->
<mapper namespace="test">
<!-- 在配置文件中配置很对的sql语句 -->
<!-- 通过select执行数据库查询
id:表示映射文件中的sql,成为statement的id
将sql语句封装到mappsedStatement对象中,所以id成为statement的id
parameterType:指定输入参数的类型,这里指定int类型
#{} 表示一个占位符
#{id}: 其中的id表示接收输入的参数,参数的名称就是id,如果输入参数是简单类型,#{}中的参数可以任意,可以是value或其他名称
resultType:指定sql输出结果的所映射的java对象类型,select 指定resultType表示将单条记录映射成的java对象
-->
<select id="findUserById" parameterType="int" resultType="com.jp.entity.User">
select * from users where id = #{id}
</select>
<!--根据用户名称模糊查询用户信息,可能返回多条
resultType:指定就是单条记录所映射的Java对象类型
${}: 表示拼接字符串,将收到的参数的内容不加任何修饰拼接在sql中
使用${}拼接sql,引起sql注入
${value}: 接受输入参数的内容,如果传入参数是简单类型,${}中只能使用values
-->
<select id="findUserByName" parameterType="String" resultType="com.jp.entity.User">
select * from users where username like #{value}
</select>
<insert id="insertUser" parameterType="com.jp.entity.User">
<!-- 主键不是自增时使用mysql的uuid()函数,需要修改表中字段类型为string
,长度设置成35 插入之前先使用uuid()函数生成一个主键再进行插入 下面的sql语句要必须要写id字段
-->
<!-- 主键自增时返回id的方法
插入数据后查询出主键id并返回
-->
<!-- <selectKey keyProperty="id" order="AFTER" resultType="int">
select last_insert_id()
</selectKey> -->
insert into users (username,password) value (#{username},#{password})
</insert>
<select id="findUserById" parameterType="int" resultType="com.jp.entity.User">
select * from student where id = #{id}
</select>
<delete id="deleteUserById" parameterType="int">
delete from student where id = #{id}
</delete>
</mapper>
第四步:
创建测试类进行增、删、改、查的测试,下面是根据ID查询用户的测试其他测试略
注意 : 除了查询意外的操作都需要提交事务,并且不管是什么操作都需要进行关闭工厂对象的操作
@Test
public void findUserByIdTest() throws IOException {
// 得到配置文件流
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建会话工厂,传入mybatis的配置文件信息
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
// 通过工厂创建会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("test.findUserById", 2);
System.out.println(user);
sqlSession.close();
}