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





  • 相关阅读:
    解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题
    网站/网页 变灰的方法
    [收藏]General things to take into consideration while doing socket programming.
    数据库主体在该数据库中拥有 架构,无法删除解决方法
    Word字体与像素的对应关系
    50个网站设计开发必备的资源素材网站
    apache实现页面重定向(地址跳转)
    JS eval(function(p,a,c,k,e,r){e=function(c)*****解密
    JS打印指定区域内容
    如何才能做到网站高并发访问? .
  • 原文地址:https://www.cnblogs.com/bb1119/p/5801151.html
Copyright © 2011-2022 走看看