您的位置:首页 > 数据库

mybatis03(配置文件实现一对一动态sql 的增删改查)

2018-01-09 16:06 801 查看
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("删除失败");

  sessi
b113
on.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());

  }

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis
相关文章推荐