配值图
SalMapConfig.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>
<properties resource="db.properties"></properties>
<!--
<settings></settings>
-->
<typeAliases>
<!--批量扫描,即po包下的类,自动起别名-->
<package name="po"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,事务控制由mybatis-->
<transactionManager type="JDBC" />
<!-- 数据库连接池,由mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmap/User.xml"></mapper>
<mapper resource="mapper/UserMapper.xml"></mapper>
<!--批量扫描,批量加载映射文件
<package name="mapper"/>
-->
</mappers>
</configuration>
log4j.properties内容
# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
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
db.properties内容:配置本地数据库
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=2683626JSJ
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">
<mapper namespace="test">
<select id="findUserById" parameterType="int" resultType="po.User">
SELECT * FROM USER WHERE id=#{value}
</select>
<!-- 查询集合-->
<select id="findAllUsers" resultType="po.User">
select * from user
</select>
</mapper>
po.User内容
package po;
import java.util.Date;
public class User {
private int id;
private String username;
private String sex;
private Date birthday;
private String address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", sex='" + sex + '\'' +
", birthday=" + birthday +
", 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;
}
}
first.mybatisfirst内容
package first;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import po.User;
import java.io.InputStream;
import java.util.List;
public class Mybitsfirst {
public static void main(String[] args) throws Exception{
// mybatis配置文件
String resource = "SqlMapConfig.xml";
// 得到配置文件流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂,传入mybatis的配置文件信息
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 通过工厂得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 通过SqlSession操作数据库
// 第一个参数:映射文件中statement的id,等于=namespace+"."+statement的id
// 第二个参数:指定和映射文件中所匹配的parameterType类型的参数
// sqlSession.selectOne结果 是与映射文件中所匹配的resultType类型的对象
// selectOne查询出一条记录
User user = sqlSession.selectOne("test.findUserById", 1);
System.out.println(user);
// 释放资源
sqlSession.close();
}
@Test
public void findAllUsersTest() throws Exception{
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
List<User> users=sqlSession.selectList("findAllUsers");
for (User u:users) {
System.out.println(u);
}
sqlSession.close();
}
}
dao.UserDao内容
package dao;
import po.User;
import java.util.List;
public interface UserDao {
public User findUserById(int id) throws Exception;
public List<User> findAllUsers() throws Exception;
}
dao.UserDaoImple内容
package dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import po.User;
import java.util.List;
public class UserDaoImpl implements UserDao{
private SqlSessionFactory sqlSessionFactory;
public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
this.sqlSessionFactory=sqlSessionFactory;
}
@Override
public User findUserById(int id) throws Exception {
SqlSession sqlSession=sqlSessionFactory.openSession();
User user=sqlSession.selectOne("test.findUserById",1);
sqlSession.close();
return user;
}
@Override
public List<User> findAllUsers() throws Exception {
SqlSession sqlSession=sqlSessionFactory.openSession();
List<User> users=sqlSession.selectList("test.findAllUsers");
sqlSession.close();
return users;
}
}
test.UserDaoImplTest内容
package dao;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import po.User;
import java.io.InputStream;
import java.util.List;
import static org.junit.Assert.*;
public class UserDaoImplTest {
SqlSessionFactory sqlSessionFactory;
@Before
public void setUp() throws Exception {
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void findUserById() throws Exception{
UserDao userDao=new UserDaoImpl(sqlSessionFactory);
User user=userDao.findUserById(1);
System.out.println(user);
}
@Test
public void findAllUsers() throws Exception{
UserDao userDao=new UserDaoImpl(sqlSessionFactory);
List<User> users=userDao.findAllUsers();
System.out.println(users.size());
}
}
后面的内容从po往下用mapper代替
config.mapper.UserMapper内容
package mapper;
import po.User;
import java.util.List;
public interface UserMapper {
public User findUserById(int id) throws Exception;
public List<User> findAllUsers() throws Exception;
public List<User> findAllUsersByName(String username) throws Exception;
public void insertUser(User user) throws Exception;
public void insertUser2(User user) throws Exception;
public void updateUser(User user) throws Exception;
public void deleteUser(int id) throws Exception;
}
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">
<!--namespace必须和mapper接口所在包一致-->
<mapper namespace="mapper.UserMapper">
<!--id必须和接口中的方法名一致-->
<select id="findUserById" parameterType="int" resultType="po.User">
SELECT * FROM USER WHERE id=#{value}
</select>
<!-- 查询集合-->
<select id="findAllUsers" resultType="po.User">
select * from user
</select>
<!--
#{}:拼接sql的占位符,参数可以是各种类型,也可以是po属性值,不太适合模糊查询中的%拼接
${}:拼接sql的占位符,作为简单类型时,其值只能是value
原则:模糊查询用$,其余用#
-->
<select id="findAllUsersByName" parameterType="java.lang.String" resultType="po.User">
select * from user where username like '%${value}%'
</select>
<insert id="insertUser" parameterType="po.User">
insert into user (id,username,birthday,sex,address) values (#{id},#{username},#{birthday},#{sex},#{address})
</insert>
<insert id="insertUser2" parameterType="po.User">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select last_insert_id()
</selectKey>
insert into user (id,username,birthday,sex,address) values (#{id},#{username},#{birthday},#{sex},#{address})
</insert>
<update id="updateUser" parameterType="po.User">
update user set
username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
</mapper>
test.mapper.UserMapperTest内容
package mapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import po.User;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import static org.junit.Assert.*;
public class UserMapperTest {
SqlSessionFactory sqlSessionFactory;
@Before
public void setUp() throws Exception {
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void findUserByIdTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=userMapper.findUserById(1);
System.out.println(user);
sqlSession.close();
}
@Test
public void findAllUsersTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> users=userMapper.findAllUsers();
for(User u:users){
System.out.println(u);
}
sqlSession.close();
}
@Test
public void findAllUsersByNameTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
List<User> users=userMapper.findAllUsersByName("张");
for(User u:users){
System.out.println(u);
}
sqlSession.close();
}
@Test
public void insertUserTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setUsername("张三三");
user.setBirthday(new Date());
user.setSex("1");
user.setAddress("南京");
userMapper.insertUser(user);
sqlSession.commit();//增删改需要提交事务
sqlSession.close();
}
@Test
public void updateUserTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setId(35);
user.setUsername("张四四");
user.setBirthday(new Date());
user.setSex("1");
user.setAddress("南京");
userMapper.updateUser(user);
sqlSession.commit();//增删改需要提交事务
sqlSession.close();
}
@Test
public void deleteUserTest() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
userMapper.deleteUser(35);
sqlSession.commit();//增删改需要提交事务
sqlSession.close();
}
@Test
public void insertUser2Test() throws Exception{
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setUsername("张五五");
user.setBirthday(new Date());
user.setSex("1");
user.setAddress("南京");
userMapper.insertUser2(user);
sqlSession.commit();//增删改需要提交事务
System.out.println(user.getId());
sqlSession.close();
}
}