MyBatis 查询
User.java
package com.mycom.mybatis_1.bean; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 7273023435058492423L; private int id; private String name; private int age; private String sex; public User() { super(); } public User(int id, String name, int age, String sex) { super(); this.id = id; this.name = name; this.age = age; this.sex = sex; } 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + id; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((sex == null) ? 0 : sex.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (age != other.age) return false; if (id != other.id) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (sex == null) { if (other.sex != null) return false; } else if (!sex.equals(other.sex)) return false; return true; } }
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.mycom.mybatis_1.bean.userMapper"> <!-- cache 开启二级缓存 --> <cache></cache> <!-- 根据id查询,得到一个user对象 --> <select id="getUser" parameterType="int" resultType="com.mycom.mybatis_1.bean.User"> select * from users where id=#{id} </select> <!-- CRUD 操作 --> <insert id="addUser" parameterType="com.mycom.mybatis_1.bean.User"> insert into users(name,age) values (#{name},#{age}) </insert> <delete id="delUser" parameterType="int"> delete from users where id=#{id} </delete> <update id="updUser" parameterType="com.mycom.mybatis_1.bean.User"> update users set name=#{name},age=#{age} where id=#{id} </update> <!-- <select id="getAllUsers" resultType="com.mycom.mybatis_1.bean.User"> select * from users </select> <select id="getAllUsers" resultType="_User"> select * from users </select> --> <select id="getAllUsers" resultType="User"> select * from users </select> <!-- 模糊查询,区间查询 --> <select id="getUser2" parameterType="ConditionUser" resultType="User"> select * from users where name like #{name} and age between #{minAge} and #{maxAge} </select> <select id="getUser3" parameterType="ConditionUser" resultType="User"> select * from users where age between #{minAge} and #{maxAge} <if test='name != "%null%"'> and name like #{name} </if> </select> <select id="getUser4" parameterType="ConditionUser" resultType="User"> select * from users where age>=#{minAge} and age<=#{maxAge} <if test='name!="%null%"'>and name like #{name}</if> </select> <!-- 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 CALL mybatis.get_user_count(1, @user_count); --> <select id="getUserCount" statementType="CALLABLE" parameterMap="getCountMap"> call mybatis.get_user_count(?,?) </select> <parameterMap type="java.util.Map" id="getCountMap"> <parameter property="sex_id" mode="IN" jdbcType="INTEGER"/> <parameter property="user_count" mode="OUT" jdbcType="INTEGER"/> </parameterMap> </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> <properties resource="db.properties" /> <!-- 配置实体类的别名 --> <typeAliases> <typeAlias type="com.mycom.mybatis_1.bean.User" alias="_User"/> <package name="com.mycom.mybatis_1.bean"/> </typeAliases> <environments default="development"><!-- development:开发模式; work:工作模式 --> <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/mybatis" /> <property name="username" value="root" /> <property name="password" value="064417" /> --> <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="com/mycom/mybatis_1/bean/userMapper.xml"/> <mapper class="com.mycom.mybatis_1.bean.UserMapper1"/> <mapper resource="com/mycom/mybatis_1/bean/orderMapper.xml"/> <mapper resource="com/mycom/mybatis_1/bean/classMapper.xml"/> <mapper resource="com/mycom/mybatis_1/bean/teacherMapper.xml"/> <mapper resource="com/mycom/mybatis_1/bean/studentMapper.xml"/> </mappers> </configuration>
Test1.java
package com.mycom.mybatis_1.select; import java.io.IOException; import java.io.InputStream; import java.io.Reader; 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.mycom.mybatis_1.bean.User; public class Test1 { public static void main(String[] args) throws IOException { // String resource = "conf.xml"; // // 加载mybatis的配置文件(它也加载关联的映射文件) // Reader reader = Resources.getResourceAsReader(resource); // // 构建sqlSession的工厂 // SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder() // .build(reader); // // 创建能执行映射文件中sql的sqlSession // SqlSession session = sessionFactory.openSession(); // // 映射sql的标识字符串 // String statement = "com.mycom.mybatis_1.bean.userMapper" // + ".getUser"; // // 执行查询返回一个唯一user对象的sql // User user = session.selectOne(statement, 1); // System.out.println(user); String resource = "conf.xml"; InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); String statement = "com.mycom.mybatis_1.bean.userMapper.getUser"; User user = session.selectOne(statement, 2); session.close(); System.out.println(user); } }
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis username=root password=******