zoukankan      html  css  js  c++  java
  • Mybatis数据的增删改查

    数据:
    Student{id int,name String ,age int}
    配置mybatis-config.xml
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <!-- <properties resource="jdbc.properties"/> -->
    7. <properties>
    8. <property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
    9. <property name="jdbc.url" value="jdbc:mysql://localhost:3306/db_mybatis"/>
    10. <property name="jdbc.username" value="root"/>
    11. <property name="jdbc.password" value="123456"/>
    12. </properties>
    13. <!-- <typeAliases>
    14. <typeAlias alias="Student" type="com.qinb.model.Student"/>
    15. </typeAliases> -->
    16. <typeAliases>
    17. <package name="com.qinb.model"/>
    18. </typeAliases>
    19. <environments default="development">
    20. <environment id="development">
    21. <transactionManager type="JDBC" />
    22. <dataSource type="POOLED">
    23. <property name="driver" value="${jdbc.driverClassName}" />
    24. <property name="url" value="${jdbc.url}" />
    25. <property name="username" value="${jdbc.username}" />
    26. <property name="password" value="${jdbc.password}" />
    27. </dataSource>
    28. </environment>
    29. <environment id="test">
    30. <transactionManager type="JDBC" />
    31. <dataSource type="POOLED">
    32. <property name="driver" value="${jdbc.driverClassName}" />
    33. <property name="url" value="${jdbc.url}" />
    34. <property name="username" value="${jdbc.username}" />
    35. <property name="password" value="${jdbc.password}" />
    36. </dataSource>
    37. </environment>
    38. </environments>
    39. <mappers>
    40. <!-- <mapper resource="com/qinb/mappers/StudentMapper.xml" /> -->
    41. <!-- <mapper class="com.qinb.mappers.StudentMapper"/> -->
    42. <package name="com.qinb.mappers"/>
    43. </mappers>
    44. </configuration>
    工厂:
    1. package com.qinb.util;
    2. import java.io.InputStream;
    3. import org.apache.ibatis.io.Resources;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.apache.ibatis.session.SqlSessionFactory;
    6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    7. public class SqlSessionFactoryUtil {
    8. private static SqlSessionFactory sqlSessionFactory;
    9. public static SqlSessionFactory getSqlSessionFactory(){
    10. if(sqlSessionFactory==null){
    11. InputStream inputStream=null;
    12. try{
    13. inputStream=Resources.getResourceAsStream("mybatis-config.xml");
    14. sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    15. }catch(Exception e){
    16. e.printStackTrace();
    17. }
    18. }
    19. return sqlSessionFactory;
    20. }
    21. public static SqlSession openSession(){
    22. return getSqlSessionFactory().openSession();
    23. }
    24. }


    Dao接口
    1. package com.qinb.mappers;
    2. import java.util.List;
    3. import com.qinb.model.Student;
    4. public interface StudentMapper {
    5. public int add(Student student);
    6. public int update(Student student);
    7. public int delete(Integer id);
    8. public Student findById(Integer id);
    9. public List<Student> list();
    10. }
    Mapper.xml实现:
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="com.qinb.mappers.StudentMapper">
    6. <resultMap type="Student" id="StudentResult">
    7. <id property="id" column="id"/>
    8. <result property="name" column="name"/>
    9. <result property="age" column="age"/>
    10. </resultMap>
    11. <insert id="add" parameterType="Student" >
    12. insert into t_student values(null,#{name},#{age})
    13. </insert>
    14. <update id="update" parameterType="Student" >
    15. update t_student set name=#{name},age=#{age} where id=#{id}
    16. </update>
    17. <delete id="delete" parameterType="Integer">
    18. delete from t_student where id=#{id}
    19. </delete>
    20. <select id="findById" parameterType="Integer" resultType="Student">
    21. select * from t_student where id=#{id}
    22. </select>
    23. <select id="list" resultMap="StudentResult">
    24. select * from t_student
    25. </select>
    26. </mapper>
    测试类:
    1. package com.qinb.service;
    2. import static org.junit.Assert.fail;
    3. import java.util.List;
    4. import java.util.logging.Logger;
    5. import org.apache.ibatis.session.SqlSession;
    6. import org.junit.After;
    7. import org.junit.Before;
    8. import org.junit.Test;
    9. import com.qinb.mappers.StudentMapper;
    10. import com.qinb.model.Student;
    11. import com.qinb.util.SqlSessionFactoryUtil;
    12. public class StudentTest2 {
    13. private static Logger logger=Logger.getLogger(StudentTest2.class.getName());
    14. private SqlSession sqlSession=null;
    15. private StudentMapper studentMapper= null;
    16. @Before
    17. public void setUp() throws Exception {
    18. sqlSession = SqlSessionFactoryUtil.openSession();
    19. studentMapper=sqlSession.getMapper(StudentMapper.class);
    20. }
    21. @After
    22. public void tearDown() throws Exception {
    23. sqlSession.close();
    24. }
    25. @Test
    26. public void testAdd(){
    27. logger.info("添加学生");
    28. Student student = new Student("王五",20);
    29. studentMapper.add(student);
    30. sqlSession.commit();
    31. }
    32. @Test
    33. public void testUpdate(){
    34. logger.info("更新学生");
    35. Student student = new Student(5,"秦豹2",22);
    36. studentMapper.update(student);
    37. sqlSession.commit();
    38. }
    39. @Test
    40. public void testDelete(){
    41. logger.info("删除学生");
    42. studentMapper.delete(2);
    43. sqlSession.commit();
    44. }
    45. @Test
    46. public void testFindById(){
    47. logger.info("根据id获取学生");
    48. Student student =studentMapper.findById(5);
    49. System.out.println(student);
    50. sqlSession.commit();
    51. //查询可以不用提交事物
    52. }
    53. @Test
    54. public void testList(){
    55. logger.info("获取所有学生");
    56. List<Student> studentList = studentMapper.list();
    57. for(Student stu:studentList){
    58. System.out.println(stu);
    59. }
    60. }
    61. @Test
    62. public void test() {
    63. fail("Not yet implemented");
    64. }
    65. }
    项目:
     





  • 相关阅读:
    这是我
    团队项目:Recycle
    四则运算生成器
    vim记录
    常用逻辑门及其符号
    shell记录
    用Gvim建立IDE编程环境 (Windows篇)
    vim基本操作
    vim后台运行程序
    快速提高 Vi/Vim 使用效率的原则与途径
  • 原文地址:https://www.cnblogs.com/bb1119/p/5801151.html
Copyright © 2011-2022 走看看