mybatis之注解方式实现

* 使用mybatis举例,使用注解方式实现* 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。* 1、导入jar包:mybatis和mysql-connector* 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径* 3、编写JavaBean类:UserBean* 4、编写执行sql接口* 5、编写测试类进行测试

mybatis-config-zhujie.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     <!--从外部配置文件导入jdbc信息-->
 7     <properties resource="jdbc.properties"></properties>
 8
 9     <environments default="development">
10         <environment id="development">
11             <transactionManager type="JDBC"/>
12             <dataSource type="POOLED">
13                 <property name="driver" value="${driver}"/>
14                 <property name="url" value="${url}"/>
15                 <property name="username" value="${username}"/>
16                 <property name="password" value="${password}"/>
17             </dataSource>
18         </environment>
19     </environments>
20
21     <!--指定映射资源文件-->
22     <mappers>
23         <mapper class="zhujie.UserMapperInterface"></mapper>
24
25     </mappers>
26 </configuration>
UserMapperInterface.java
 1 package zhujie;
 2
 3 import bean.UserSalary;
 4 import first.UserBean;
 5 import org.apache.ibatis.annotations.Delete;
 6 import org.apache.ibatis.annotations.Insert;
 7 import org.apache.ibatis.annotations.Select;
 8 import org.apache.ibatis.annotations.Update;
 9
10 import java.util.List;
11
12 /*
13 * 使用mybatis举例,使用注解方式实现
14 * 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
15 * 1、导入jar包:mybatis和mysql-connector
16 * 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径
17 * 3、编写JavaBean类:UserBean
18 * 4、编写执行sql接口
19 * 5、编写测试类进行测试,自动实例化,调用方法
20 * */
21 public interface UserMapperInterface {
22
23     //    UserBean
24     @Select("select * from user where id = #{id}")
25     public UserBean selectOneUser(int id);
26
27     @Select("select * from user")
28     public List<UserBean> selectAllUser();
29
30     @Insert("insert into user (id, name, age) values (#{id} ,#{name}, #{age})")
31     public int insertUser(UserBean userBean);
32
33     @Update("update user set name=#{name} where id=#{id}")
34     public int updateUser(UserBean userBean);
35
36     @Delete("delete from user where id=#{id}")
37     public int deleteById(int id);
38
39     @Delete("delete from user where id=#{id}")
40     public int deleteByUserBean(UserBean userBean);
41
42     // 使用User和Salary表联合查询
43     @Select("select u.id, u.name, u.age, s.salary from user u, salary s where u.name = s.name and u.name = #{name}")
44     public UserSalary selectOneUserSalary(String name);
45
46 }
TestZhuJie.java
  1 package zhujie;
  2
  3 import bean.UserSalary;
  4 import first.UserBean;
  5 import org.apache.ibatis.io.Resources;
  6 import org.apache.ibatis.session.SqlSession;
  7 import org.apache.ibatis.session.SqlSessionFactory;
  8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  9 import org.junit.After;
 10 import org.junit.Before;
 11 import org.junit.Ignore;
 12 import org.junit.Test;
 13
 14 import java.io.IOException;
 15 import java.io.InputStream;
 16 import java.util.List;
 17
 18 /*
 19 * 使用mybatis举例,使用注解方式实现
 20 * 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
 21 * 1、导入jar包:mybatis和mysql-connector
 22 * 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径
 23 * 3、编写JavaBean类:UserBean
 24 * 4、编写执行sql接口
 25 * 5、编写测试类进行测试
 26 * */
 27 public class TestZhuJie {
 28     String resource = "mybatis-config-zhujie.xml";
 29     SqlSessionFactory sqlSessionFactory = null;
 30     SqlSession session = null;
 31
 32     @Before
 33     public void before() {
 34 //        System.out.println("Before");
 35         try {
 36             InputStream inputStream = Resources.getResourceAsStream(resource);
 37 //            创建工厂
 38             sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 39 //            创建session对象
 40             session = sqlSessionFactory.openSession();
 41
 42         } catch (IOException e) {
 43             e.printStackTrace();
 44         }
 45     }
 46
 47     @After
 48     public void close() {
 49         session.close();
 50 //        System.out.println("After");
 51     }
 52
 53     @Test
 54     public void testSelectOneUser() {
 55 //        接口自动实例化
 56         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
 57 //        执行sql
 58         UserBean userBean = userMapperInterface.selectOneUser(1);
 59         System.out.println(userBean);
 60     }
 61
 62 //    批量查询
 63     @Test
 64     public void testSelectAllUser() {
 65 //        接口自动实例化
 66         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
 67 //        执行sql
 68         List<UserBean> listUserBean = userMapperInterface.selectAllUser();
 69         System.out.println("记录个数:" + listUserBean.size());
 70         System.out.println(listUserBean);
 71     }
 72
 73     @Ignore
 74     @Test
 75     public void testInsertUser() {
 76         UserBean userBean = new UserBean("CoCo2", "50");
 77         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
 78         int n = userMapperInterface.insertUser(userBean);
 79 //        提交
 80         session.commit();
 81         System.out.println("插入数据成功:" + userBean);
 82     }
 83
 84     @Ignore
 85     @Test
 86     public void testUpdateUser() {
 87         UserBean userBean = new UserBean(2, "Tom44", "40");
 88         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
 89         userMapperInterface.updateUser(userBean);
 90         session.commit();
 91         System.out.println("修改数据成功:" + userBean);
 92     }
 93
 94     @Ignore
 95     @Test
 96     public void testDeleteUser() {
 97         UserBean userBean = new UserBean(15, "XXX", "40");
 98         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
 99         int n = userMapperInterface.deleteByUserBean(userBean);
100         session.commit();
101         System.out.println("删除数据成功:" + userBean);
102         System.out.println("操作成功记录数:" + n);
103     }
104
105     @Test
106     public void testSelectOneUserSalary() {
107 //        接口自动实例化
108         UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
109 //        执行sql
110         UserSalary userSalary = userMapperInterface.selectOneUserSalary("Tom");
111         System.out.println(userSalary);
112     }
113
114 }


原文地址:https://www.cnblogs.com/gongxr/p/8288168.html

时间: 2024-08-01 15:31:57

mybatis之注解方式实现的相关文章

MyBatis应用开发(3)应用之开发方式注解方式篇

1.1. 注解方式 1.1.1. 开发步骤 目标:使用MyBatis从数据库中查询t_person表的全部记录. MyBatis还可以使用注解来配置数据库中的记录与Java对象之间的映射关系.此时SQL语句出现在Mapper接口的方法的注解中.优点是不再需要编写独立的Mapper配置文件. 使用MyBatis 的注解方式开发数据库应用的步骤如下所示: (1)编写POJO类Person. (2)编写Mapper接口PersonMapper. (3)编写业务接口PersonService. (4)编

mybatis注解方式和xml方式的使用

Mybatis的注解方式的使用: Mybatis的xml的使用 原文地址:https://www.cnblogs.com/xjatj/p/9277426.html

MyBatis从入门到精通(第3章): MyBatis注解方式的基本使用

MyBatis 注解方式就是将 SQL 语句直接写在DAO层的接口上. 在黑马2018年录制的双元视频课:\08 SSM整合案例[企业权限管理系统]\07.订单操作  有使用mybatis注解进行多表关联查询的案例,在下文会有使用注解的补充说明. 这种方式的优点是 , 对于需求比较简单的系统,效率较高.缺点是 ,当 SQL 有变化时都需要重新编译代码, 一般情况下不建议使用MyBatis的注解方式 . 因此, (原书)本章不会进行深入讲解. 在 MyBatis 注解 SQL 中,最基本的就是@S

【spring boot+mybatis】注解使用方式(无xml配置)设置自动驼峰明明转换(),IDEA中xxDao报错could not autowire的解决方法

最近使用spring boot+mybatis,使用IntelliJ IDEA开发,记录一些问题的解决方法. 1.在使用@Mapper注解方式代替XXmapper.xml配置文件,使用@Select等注解配置sql语句的情况下,如何配置数据库字段名到JavaBean实体类属性命的自动驼峰命名转换? 使用spring boot后,越来越喜欢用注解方式进行配置,代替xml配置文件方式.mybatis中也可以完全使用注解,避免使用xml方式配置mapper.(参考  springboot(六):如何优

从零开始学JAVA(09)-使用SpringMVC4 + Mybatis + MySql 例子(注解方式开发)

项目需要,继续学习springmvc,这里加入Mybatis对数据库的访问,并写下一个简单的例子便于以后学习,希望对看的人有帮助.上一篇被移出博客主页,这一篇努力排版整齐,更原创,希望不要再被移出主页了. 原创文章,后面附上源码,转载请注明出处http://www.cnblogs.com/lin557/p/6179618.html 一.运行环境 Eclipse Neon.1a Release (4.6.1) 官网下载 mysql-5.7.16-winx64(http://cdn.mysql.co

springboot整合mybatis(映射文件方式和注解方式)

springboot作为一个微服务框架,给我们开发人员提供极大的便利,秉着约定大于配置的原则,通过starter包的形式为我们做了许多默认的配置,在进行数据持久化到关系型数据库时,我们一般都会首选spring data jpa,springboot为我们提供了starter包,只需配置很少的参数,就能满足我们的需求,非常方便.但是当我们遇到一些比较复杂的查询.多表关联查询及动态sql时,mybatis则在这方面更出色,并且在使用mybatis时我们可以通过sql优化来提高查询效率,springb

mybatis(4)--使用注解方式配置sql语句

使用注解方式配置sql语句,不需要写对应的UserMapper.xml package com.mapper; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations

SpringMVC注解方式的使用

如何实现XML代码提示功能 与MyBatis一样,在使用注解方式之前,首先检查XML是否有代码提示功能,如果没有,需要进行配置. 以bean命名空间为例,配置其代码提示功能. 首先应当确认引入了bean命名空间,如果已经建好了XML配置文件,但是忘记引入bean命名空间.可以: 关闭XML,右键XML文件,在open with选项中选择以Spring Config Editor方式打开,这时文件左下角出现Namespaces,点击,选中bean命名空间并添加即可,配置XML注解方式需要的最基础的

Java Mybatis 传参方式

一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean"> select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,