接上一次的实验,因为要用到上一次包中的User.java
建包
MyBatisUtils.java是一个封装的类,为了以后方便使用
package com.sxau.rjxy.MyBatis_test2;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.sxau.rjxy.MyBatis_test.Test;
public class MyBatisUtils {
public static SqlSessionFactory getFactory(){
String resource = "conf.xml";
//加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession的工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
return factory;
}
}
userMapper.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="com.sxau.rjxy.MyBatis_test2.userMapper1"><!-- 包名.xml文件名 -->
<select id="getUser" parameterType ="int"
resultType="com.sxau.rjxy.MyBatis_test.User"><!-- 包名.java名 -->
select * from users where id =#{id}
</select>
<insert id="insertUser" parameterType="com.sxau.rjxy.MyBatis_test.User">
insert into users(name,age) values(#{name},#{age})
</insert>
<delete id="deleteUser" parameterType= "int">
delete from users where id=#{id}
</delete>
<update id="updateUser" parameterType="com.sxau.rjxy.MyBatis_test.User">
update users set name=#{name},age=#{age} where id=#{id}
</update>
<select id="selectAllUser" resultType="com.sxau.rjxy.MyBatis_test.User">
select * from users
</select>
</mapper>
conf.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/mybaits" /><!-- 数据库名可更改 -->
<property name="username" value="root" />
<property name="password" value="123456" /><!-- 密码可更改 -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sxau/rjxy/MyBatis_test/userMapper.xml" /><!-- 这个是右键userMapper.xml选择 copy qualified Name复制,并删除com之前的东西-->
<mapper resource="com/sxau/rjxy/MyBatis_test2/userMapper1.xml" />
</mappers>
</configuration>
Test1测试
package com.sxau.rjxy.MyBatis_test2;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.sxau.rjxy.MyBatis_test.User;
public class Test1 {
@Test
public void testAdd(){
SqlSessionFactory factory = MyBatisUtils.getFactory();
SqlSession session = factory.openSession(true);
String statement = "com.sxau.rjxy.MyBatis_test2.userMapper1.insertUser";
int insert = session.insert(statement,new User(-2,"kk",23));
System.out.println(insert);
}
@Test
public void testUpdate(){
SqlSessionFactory factory = MyBatisUtils.getFactory();
SqlSession session = factory.openSession(true);
String statement = "com.sxau.rjxy.MyBatis_test2.userMapper1.updateUser";
int update = session.update(statement,new User(4,"kk4444",25));
System.out.println(update);
}
@Test
public void testDelete(){
SqlSessionFactory factory = MyBatisUtils.getFactory();
SqlSession session = factory.openSession(true);
String statement = "com.sxau.rjxy.MyBatis_test2.userMapper1.deleteUser";
int delete = session.delete(statement,1);
System.out.println(delete);
}
@Test
public void testGetUser(){
SqlSessionFactory factory = MyBatisUtils.getFactory();
SqlSession session = factory.openSession(true);
String statement = "com.sxau.rjxy.MyBatis_test2.userMapper1.getUser";
User user = session.selectOne(statement,1);
session.close();
System.out.println(user);
}
@Test
public void testGetAll(){
SqlSessionFactory factory = MyBatisUtils.getFactory();
SqlSession session = factory.openSession(true);
String statement = "com.sxau.rjxy.MyBatis_test2.userMapper1.selectAllUser";
List<User>list = session.selectList(statement);
session.close();
System.out.println(list);
}
}