一、定义一个User实体类
package com.domain;
public class User {
private Integer id;
private String username;
private Integer age;
public User()
{}
public User(String username, Integer age) {
this.username = username;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "id:"+id +",username:"+username+",age:"+age;
}
}
二、首先写一个接口类:
package com.dao;
import java.util.List;
import com.domain.MyUser;
import com.domain.User;
public interface UserMapper {
/*根据id查找一个对象*/
public User findById(Integer id);
/*添加一个对象*/
public void addUser(User user);
/*根据id删除一个对象*/
public void deleteById(Integer id);
/*查找所有对象*/
public List<User> lists();
/*数据库记录条数*/
public int showCount();
/*批量查找对象*/
public List<User> findByIds(MyUser myUser);
/*ids批量删除对象*/
public void deleteByIds(MyUser myUser);
}
三、写一个与接口类UserMapper对应的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.dao.UserMapper">
<!-- 查找一个对象 -->
<select id="findById" parameterType="Integer" resultType="User">
select * from t_user where id=#{id}
</select>
<!-- 增加一个对象 -->
<insert id="addUser" parameterType="User">
insert into t_user(username,age) values(#{username},#{age})
</insert>
<!-- 删除一个对象 -->
<delete id="deleteById" parameterType="Integer">
delete from t_user where id=#{id}
</delete>
<!-- 显示所有对象 -->
<select id="lists" resultType="User">
select * from t_user order by id desc
</select>
<!-- 查询数据库的记录条数 -->
<select id="showCount" resultType="Integer">
select count(*) from t_user
</select>
<!-- parameterType参数类型,resultType结果类型.除了原有的类型,如果我们要引用 的话就需要在SqlMapConfig.xml中定义 .ids批量查找对象-->
<select id="findByIds" parameterType="MyUser" resultType="User">
select * from t_user where id in
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- ids批量删除对象 -->
<delete id="deleteByIds" parameterType="MyUser">
delete from t_user where id in <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>
</delete>
</mapper>
其中MyUser 表示一个构造参数的实体类用来封装一些参数,这里是用来封闭用户id集合:
package com.domain;
import java.io.Serializable;
public class MyUser implements Serializable {
private static final long serialVersionUID = 1L;
private Integer[] ids;
public Integer[] getIds() {
return ids;
}
public void setIds(Integer[] ids) {
this.ids = ids;
}
}
四、为MyBabits增加一个配置数据库信息的配置文件:
<?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>
<typeAliases>
<!-- 类映射文件 ,这里定义的可以做为参数类型,也可以作为结果类型,不过一定要定义,不然UserMapper.xml不能识别,这里的alias是起别名,在UserMapper.xml中可以直接使用 -->
<typeAlias alias="MyUser" type="com.domain.MyUser"/>
<typeAlias alias="User" type="com.domain.User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->
<transactionManager type="JDBC" />
<!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://192.168.1.188:3306/mybatis"/>
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- 接口方法映射文件 -->
<mappers>
<mapper resource="com/dao/UserMapper.xml"/>
</mappers>
</configuration>
五、使用已经写好的接口,这里使用Junit单元测试,这里只测试了查找对象,其它方法可以自己去测试:
package com.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
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.*;
import com.dao.UserMapper;
import com.domain.MyUser;
import com.domain.User;
public class testMybatis {
static SqlSessionFactory ssf=null;
static SqlSession session=null;
//加载配置文件,使用到SqlSessionFactoryBuilder工厂,并得到session
@BeforeClass
public static void before() throws IOException
{
String resource="SqlMapConfig.xml";
Reader reader=Resources.getResourceAsReader(resource);
ssf=new SqlSessionFactoryBuilder().build(reader);
session=ssf.openSession();
}
/*查找一个对象 */
@Test
public void testGetById()
{
try{
UserMapper userMapper=session.getMapper(UserMapper.class);
User user=userMapper.findById(2);
System.out.println(user);
}catch(Exception e)
{
e.printStackTrace();
}
}
//最后关闭session
@AfterClass
public static void afterClass()
{
session.close();
}


1251

被折叠的 条评论
为什么被折叠?



