文件目录
写一下每个文件的代码
UserDao.java
package cn.zys.dao; import java.io.IOException; import java.util.List; import org.apache.ibatis.session.SqlSession; import cn.zys.entity.User; import cn.zys.until.MyBatisUtils; public class UserDao { //根据id查用户 public User getById(int id) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); User user = sqlsession.selectOne("cn.zys.entity.UserMapper.selectUser", id); /*System.out.println(user.toString());*/ sqlsession.close(); return user; } //查询所有用户 public List<User> selectAll() throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectAll"); sqlsession.close(); return list; } //添加用户 public int addUser(User user) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); int res = sqlsession.insert("cn.zys.entity.UserMapper.insertUser",user); sqlsession.commit(); sqlsession.close(); return res; } //更新用户 public int updateUser(User user) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); int res = sqlsession.update("cn.zys.entity.UserMapper.updateUser",user); sqlsession.commit(); sqlsession.close(); return res; } //删除用户 public int deleteUser(int id) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); int res = sqlsession.delete("cn.zys.entity.UserMapper.deleteUser",id); sqlsession.commit(); sqlsession.close(); return res; }
//分页查询 public List<User> selectLimt(int startindex,int pagenum) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); Map<String,Integer> maps = new HashMap<String, Integer>(); maps.put("startindex", (startindex-1)*pagenum); maps.put("pagenum", pagenum); List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectLimit",maps); sqlsession.commit(); sqlsession.close(); return list; } //rowbangs分页查询 public List<User> selectLimts(int startindex,int pagenum) throws IOException{ SqlSession sqlsession = MyBatisUtils.getSqlSession(); RowBounds rowbounds = new RowBounds((startindex-1)*pagenum,pagenum); List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectLimits",null,rowbounds); sqlsession.commit(); sqlsession.close(); return list; }
}
User.java
package cn.zys.entity; public class User { private int id; private String name; private String pwd; // public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]"; } }
user-mappers.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 --> <mapper namespace="cn.zys.entity.UserMapper"> <select id="selectUser" resultType="User"> select * from user where id = #{id} </select> <!-- 查询所有 --> <select id="selectAll" resultType="User" 返回值类型 > select * from user </select>
<!-- 分页 --> <select id="selectLimit" parameterType="Map" resultType="User"> select * from user limit #{startindex},#{pagenum} </select> <!-- 使用rowbangs分页 --> <select id="selectLimits" parameterType="Map" resultType="User"> select * from user </select>
<insert id="insertUser" parameterType="User" 此处的属性为参数类型 useGeneratedKeys="true" 此处属性为是否使用自增字段 > 增删改默认返回int类型 insert into user(name,pwd) values(#{name},#{pwd}) </insert> <update id="updateUser" parameterType="User" > update user set name=#{name},pwd=#{pwd} where id=#{id} </update> <delete id="deleteUser" > delete from user where id=#{id} </delete> </mapper>
MyBatisUtils.java
package cn.zys.until; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtils { public static SqlSessionFactory getSqlSessionFactory() throws IOException{ String resource = "mybatis.config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); return sqlSessionFactory; } public static SqlSession getSqlSession() throws IOException{ SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); return sqlSessionFactory.openSession(); } }
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis1 username=root password=root
mybatis.config.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> <!-- 为某个类型指定别名 方便在某个引用时使用 比如传值 在此处使用在 user-mappers.xml的resultType --> <typeAliases> <!-- <typeAlias type="cn.zys.entity.User" alias="User" /> --> <!-- 为某个包下的所有类指定别名 默认别名是对应类名 --> <package name="cn.zys.entity" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/zys/entity/user-mappers.xml"/> </mappers> </configuration>
test.java
package cn.zys.test; import java.io.IOException; import java.util.List; import cn.zys.dao.UserDao; import cn.zys.entity.User; public class test { public static void main(String[] args) throws IOException { UserDao userdao = new UserDao();
//新用户
/* User user = new User();
user.setName("002");
user.setPwd("002");
userdao.addUser(user);*/
//分页测试
List<User> list = userdao.selectLimts(0, 2);
System.out.println(list);
}
}
最后的测试中只测试了最后一个查询多条数据