myBatis的一个入门案例
功能:
(1)查出单个用户
(2)查出所有用户
(3)修改用户信息
(4)新增用户信息
(5)删除用户信息
1、加载相关的包
mybatis-3.2.3.jar
mysql-connector-java-5.1.7-bin.jar
2、目录结构
3、配置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.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mybatis/domain/User.xml" /> </mappers> </configuration>
4、User.java模型文件
package com.mybatis.domain; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private int id; private String name; public User(){}; public User(int id,String name){ this.id = id; this.name = name; } 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 toString(){ return "User [id:" + this.id + ";name:" + this.name +"]"; } }
5、User.xml(sql配置文件)
<?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"> <cache /> <!-- 通过id查询一个用户 --> <select id="selectUser" parameterType="int" resultType="com.mybatis.domain.User"> select * from user where id=#{id} </select> <select id="selectUserToHashMap" parameterType="hashMap" resultType="hashMap"> select * from user where id=#{id} and name=#{name} </select> <!-- 获取所有的数据 --> <select id="getUser" resultType="com.mybatis.domain.User"> select * from user </select> <!-- 插入一条记录 --> <insert id="insertUser" parameterType="com.mybatis.domain.User" useGeneratedKeys="true" keyProperty="id"> insert into user(id,name) values(#{id},#{name}) </insert> <!-- 更新一条记录 --> <update id="updateUser" parameterType="com.mybatis.domain.User"> update user set name=#{name} where id = #{id} </update> <!-- 删除一条记录 --> <delete id="deleteUser" parameterType="int"> delete from user where id = #{id} </delete> </mapper>
6、测试代码
package com.mybatis.test; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.List; import java.util.Map; 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 com.mybatis.domain.User; public class UserTest { public static void main(String[] args) throws IOException { String resource = "configuration.xml"; Reader reader = Resources.getResourceAsReader(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(true); //true自动提交 try { //查询一个用户 User user = session.selectOne("selectUser", "1"); System.out.println(user); Map paraMap = new HashMap(); paraMap.put("id", 2); paraMap.put("name", "李四"); Map user2 = session.selectOne("selectUserToHashMap",paraMap); System.out.println("User [id:"+user2.get("id")+";name:"+user2.get("name")+"]"); //获取所有用户 System.out.println("**************"); List<User> users = session.selectList("getUser"); for(User user1 : users){ System.out.println("User [id:"+user1.getId()+";name:"+user1.getName()+"]"); } System.out.println("**************"); //插入一个用户 User newUser = new User(); newUser.setId(4); newUser.setName("赵六"); int id = session.insert("insertUser", newUser); session.commit(); System.out.println(id); //修改用户 newUser.setId(4); newUser.setName("赵六六"); session.update("updateUser", newUser); //删除用户 session.delete("deleteUser", 4); } catch (RuntimeException e) { e.printStackTrace(); }finally{ session.close(); } } }