1.javaBean
package com.bean;
public class User {
private Integer id;
private String username;
private String password;
private Integer phone;
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 String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getPhone() {
return phone;
}
public void setPhone(Integer phone) {
this.phone = phone;
}
}
2.log4j.properties
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.mapper=DEBUG
# 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
3.mybatis配置文件
<?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">
<!--1.配置环境 ,默认的环境id为mysql-->
<configuration>
<!-- 1.指定mybatis所用日志的具体实现 -->
<settings>
<setting name="logImpl" value="LOG4j"/>
</settings>
<!-- 起别名 -->
<typeAliases>
<typeAlias type="com.bean.User" alias="User"/>
<!-- 自动在包名下搜索javabean并起别名为 类名的首字母小写 -->
<!-- <package name="com.bean"/> -->
</typeAliases>
<!--2.配置环境 ,默认的环境id为mysql-->
<environments default="mysql">
<!--2.2.配置id为mysql的数据库环境 -->
<environment id="mysql">
<!-- 2.2.1使用JDBC的事务管理 使用了JDBC的提交和回滚设置-->
<transactionManager type="JDBC"></transactionManager>
<!--2.2.2数据库连接池 POOLED是JDBC连接对象的数据源连接池的实现 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--3.配置Mapper的位置 -->
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
<!-- 使用本地文件 -->
<!-- <mapper url="file:///D:/java/workspaces/mybatis0/src/com/mapper/UserMapper.xml"/> -->
</mappers>
</configuration>
4..数据库操作的配置文件
<?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表示命名空间
程序代码访问文件是通过namespace完成的,包名+文件名命名
-->
<mapper namespace="com.mapper.UserMapper">
<insert id="addUser" parameterType="User">
insert into user(username, password, phone) values
(#{username}, #{password}, #{phone})
</insert>
<delete id="deleteUser" parameterType="Integer">
delete from user where id=#{id}
</delete>
<!-- set标签等价于set + 最后一个设置语句的逗号去掉 -->
<!-- where标签等价于 where + 第一个and去掉 -->
<update id="updateUser" parameterType="com.bean.User">
update user
<set>
<if test="username!=null and username !=''">
username=#{username},
</if>
<if test="password!=null and password !=''">
password=#{password},
</if>
</set>
<where>
<if test="id != null and id !=''">
and id=#{id}
</if>
</where>
</update>
<!-- chose标签类似于switch-case语句 只会执行第一个满足条件的语句 -->
<!-- when等价于case语句 otherwise等价于default语句-->
<select id="selectUserByUser" parameterType="com.bean.User" resultType="com.bean.User">
select * from user
<where>
<choose>
<when test="username!=null and username !=''">
username=#{username}
</when>
<when test="password!=null and password!=''">
password=#{password}
</when>
<when test="id!=null and id!=''">
id=#{id}
</when>
<when test="phone!=null and phone!=''">
phone=#{phone}
</when>
<otherwise>
1=1
</otherwise>
</choose>
</where>
</select>
<!-- 通过使用resultmap进行数据库表和返回值类型的映射,id属性代表主键,result属性代表普通列 -->
<resultMap type="com.bean.User" id="userResultMap">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="phone" column="phone"/>
</resultMap>
<select id="selectUser2" resultMap="userResultMap">
select * from user
</select>
<!-- 使用if语句判断是否为空 -->
<select id="selectUser" parameterType="com.bean.User" resultType="com.bean.User">
select * from user where 1=1
<if test="id != null and id !=''">
and id=#{id}
</if>
</select>
<select id="selectUserByName" parameterType="String" resultType="com.bean.User">
select * from user where username like '%${value}%'<!-- 这种方式必须是${value} -->
<!-- select * from user where username like "%"#{username}"%" -->
<!-- select * from user where username like concat("%",#{username},"%") -->
</select>
<select id="selectUserForeach" resultType="com.bean.User" parameterType="List">
select * from user where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
5.增
package com.test;
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;
import org.apache.tools.ant.types.CommandlineJava.SysProperties;
import org.junit.Test;
import com.bean.User;
public class Test1 {
@Test
public void add() throws IOException {
//第一步 读取配置文件mybatis-config.xml
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//第二步 创建会话工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//第三步 生成会话
SqlSession session = sessionFactory.openSession();
User user=new User();
user.setUsername("哈哈哈");
user.setPassword("123456");
user.setPhone(110);
//第一个参数要定位到执行的 SQL语句,通过namesapce+sql的id
int i=session.insert("com.mapper.UserMapper.addUser",user);
if(i>0)
System.out.println("插入成功");
else
System.out.println("插入失败");
session.commit();
session.close();
}
}
6.删
package com.test;
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;
import org.junit.Test;
public class Test2 {
@Test
public void delete() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
int i=session.delete("com.mapper.UserMapper.deleteUser", 2);
if(i>0)
System.out.println("删除成功");
else
System.out.println("删除失败");
session.commit();
session.close();
}
}
7.改
package com.test;
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;
import org.junit.Test;
import com.bean.User;
import javassist.expr.NewArray;
public class Test3 {
@Test
public void update() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
User user=new User();
user.setId(2);
user.setPassword("123456");
int i=session.update("com.mapper.UserMapper.updateUser", user);
if(i>0)
System.out.println("修改成功");
else
System.out.println("修改失败");
session.commit();
session.close();
}
}
8.查
package com.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
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 org.junit.Test;
import com.bean.User;
import com.mysql.fabric.xmlrpc.base.Value;
import javassist.expr.NewArray;
public class Test4 {
@Test
public void select() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
User user2=new User();
user2.setId(2);
User user=session.selectOne("com.mapper.UserMapper.selectUser",user2);
System.out.println(user.getId());
System.out.println(user.getUsername());
System.out.println(user.getPassword());
System.out.println(user.getPhone());
}
@Test
public void select2() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
User user=session.selectOne("com.mapper.UserMapper.selectUser2");
System.out.println(user.getId());
System.out.println(user.getUsername());
System.out.println(user.getPassword());
System.out.println(user.getPhone());
}
@Test
public void selectUserByName() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
List<User> users=session.selectList("com.mapper.UserMapper.selectUserByName","玉");
for(User user:users)
{
System.out.print(user.getId()+"\t");
System.out.print(user.getUsername()+"\t");
System.out.print(user.getPassword()+"\t");
System.out.println(user.getPhone());
}
}
@Test
public void selectUserByUser() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
List<User> users=session.selectList("com.mapper.UserMapper.selectUserByUser",new User());
for(User user:users)
{
System.out.print(user.getId()+"\t");
System.out.print(user.getUsername()+"\t");
System.out.print(user.getPassword()+"\t");
System.out.println(user.getPhone());
}
}
@Test
public void selectUserForeach() throws IOException
{
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sessionFactory.openSession();
List<Integer> list1=new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
List<User> users=session.selectList("com.mapper.UserMapper.selectUserForeach",list1);
for(User user:users)
{
System.out.print(user.getId()+"\t");
System.out.print(user.getUsername()+"\t");
System.out.print(user.getPassword()+"\t");
System.out.println(user.getPhone());
}
}
}