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. }
    项目:
     





  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/bb1119/p/5801151.html
Copyright © 2011-2022 走看看