2、spring+mybatis注解(无mapper实现类)+idea+maven()

  本篇文章为你整理了2、spring+mybatis注解(无mapper实现类)+idea+maven()的详细内容,包含有 2、spring+mybatis注解(无mapper实现类)+idea+maven,希望能帮助你了解 2、spring+mybatis注解(无mapper实现类)+idea+maven。

  1、在idea中配置database 连接数据库,用来在idea中编写sql脚本操作数据库

  

  

  

  

  

  

  

  

  2、sql详细脚本如下:

  

 1 --1.创建部门表

 

   2 create table dept

   4 deptno int(2) unsigned primary key,

   5 dname varchar(14),

   6 loc varchar(13)

   7 );

   9 --2.添加部门数据

  10 insert into dept(deptno,dname,loc) values

  11 (10,ACCOUNTING,NEW YORK),

  12 (20,RESEARCH,DALLAS),

  13 (30,SALES,CHICAGO),

  14 (40,OPERATIONS,BOSTON);

  16 --3.创建员工表

  17 create table emp

  19 empno int(4) unsigned primary key,

  20 ename varchar(10),

  21 job varchar(9),

  22 mgr int(4),

  23 hiredate date,

  24 sal double(7,2),

  25 comm double(7,2),

  26 deptno int(2) references dept(deptno)

  27 );

  29 --4.插入数据员工数据

  30 insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values

  31 (7369,SMITH,CLERK,7902,1980-12-17,800,null,20),

  32 (7499,ALLEN,SALESMAN,7698,1981-02-20,1600,300,30),

  33 (7521,WARD,SALESMAN,7698,1981-02-22,1250,500,30),

  34 (7566,JONES,MANAGER,7839,1981-04-02,2975,null,20),

  35 (7654,MARTIN,SALESMAN,7698,1981-09-28,1250,1400,30),

  36 (7698,BLAKE,MANAGER,7839,1981-05-01,2850,null,30),

  37 (7782,BLAKE,MANAGER,7839,1981-06-09,2450,null,10),

  38 (7788,SCOTT,ANALYST,7566,1987-04-19,3000,null,20),

  39 (7839,KING,PRESIDENT,null,1981-11-17,5000,null,10),

  40 (7844,TURNER,SALESMAN,7698,1981-09-08,1500,0,30),

  41 (7876,ADAMS,CLERK,7788,1987-05-23,1100,null,20),

  42 (7900,JAMES,CLERK,7698,1981-12-03,950,null,30),

  43 (7902,FORD,ANALYST,7566,1981-12-03,3000,null,20),

  44 (7934,MILLER,CLERK,7782,1982-01-23,1300,null,10);

  47 --3.员工福利表

  48 create table bonus

  50 ename varchar(10),

  51 job varchar(9),

  52 sal double(7,2),

  53 comm double(7,2)

  54 );

  56 --4.工资等级表

  57 create table salgrade

  59 grade int(10),

  60 losal double(7,2),

  61 hisal double(7,2)

  62 );

  64 --5.插入工资等级信息

  65 insert into salgrade(grade,losal,hisal) values

  66 (1,700,1200),

  67 (2,1201,1400),

  68 (3,1401,2000),

  69 (4,2001,3000),

  70 (5,3001,9999);

 

  scott-mysql.sql

  3、创建项目,项目结构如下:

  

  

  

  4、在pojo包下创建MainEntity.java实体类

  

 1 package com.pojo;

 

   2 /**

   3 * 承接首页数据的持久化类

   4 * 用来接受sql查询的结果

   5 * 且将数据传输到首页显示

   6 */

   7 public class MainEntity {

   8 //因为多方外键列的值和一方主键列的值是一样的,如果有需要则显示多方外键列字段,不写一方主键列

   9 //先写多方字段

   10 private Integer empno;

   11 private String ename;

   12 private String job;

   13 private Double sal;

   14 private Integer deptno;

   16 private Double maxsal;

   17 private Double minsal;

   18 //再写一方字段

   19 private String dname;

   21 public MainEntity() {

   22 }

   24 public MainEntity(Integer empno, String ename, String job, Double sal, Integer deptno, String dname) {

   25 this.empno = empno;

   26 this.ename = ename;

   27 this.job = job;

   28 this.sal = sal;

   29 this.deptno = deptno;

   30 this.dname = dname;

   31 }

   33 public MainEntity(Integer empno, String ename, String job, Double sal, Integer deptno, String dname, Double minsal,Double maxsal) {

   34 this.empno = empno;

   35 this.ename = ename;

   36 this.job = job;

   37 this.sal = sal;

   38 this.deptno = deptno;

   39 this.maxsal = maxsal;

   40 this.minsal = minsal;

   41 this.dname = dname;

   42 }

   44 public Integer getEmpno() {

   45 return empno;

   46 }

   48 public void setEmpno(Integer empno) {

   49 this.empno = empno;

   50 }

   52 public String getEname() {

   53 return ename;

   54 }

   56 public void setEname(String ename) {

   57 this.ename = ename;

   58 }

   60 public String getJob() {

   61 return job;

   62 }

   64 public void setJob(String job) {

   65 this.job = job;

   66 }

   68 public Double getSal() {

   69 return sal;

   70 }

   72 public void setSal(Double sal) {

   73 this.sal = sal;

   74 }

   76 public Integer getDeptno() {

   77 return deptno;

   78 }

   80 public void setDeptno(Integer deptno) {

   81 this.deptno = deptno;

   82 }

   84 public String getDname() {

   85 return dname;

   86 }

   88 public void setDname(String dname) {

   89 this.dname = dname;

   90 }

   92 public Double getMaxsal() {

   93 return maxsal;

   94 }

   96 public void setMaxsal(Double maxsal) {

   97 this.maxsal = maxsal;

   98 }

  100 public Double getMinsal() {

  101 return minsal;

  102 }

  104 public void setMinsal(Double minsal) {

  105 this.minsal = minsal;

  106 }

  108 @Override

  109 public String toString() {

  110 return "MainEntity{" +

  111 "empno=" + empno +

  112 ", ename=" + ename + \ +

  113 ", job=" + job + \ +

  114 ", sal=" + sal +

  115 ", deptno=" + deptno +

  116 ", maxsal=" + maxsal +

  117 ", minsal=" + minsal +

  118 ", dname=" + dname + \ +

  119 };

  120 }

  121 }

 

  MainEntity.java

  5、在mapper包下创建MainEntityMapper.java映射接口

  

 1 package com.mapper;

 

   3 import com.pojo.MainEntity;

   4 import org.apache.ibatis.annotations.Delete;

   5 import org.apache.ibatis.annotations.Insert;

   6 import org.apache.ibatis.annotations.Select;

   7 import org.apache.ibatis.annotations.Update;

   9 import java.util.List;

  11 public interface MainEntityMapper {

  12 // mybatis注解的动态sql的要写在script标签内,且开始标签前不能有空格

  13 @Select(" script " +

  14 " select" +

  15 " d.dname," +

  16 " e.empno,e.ename,e.job,e.sal,e.deptno" +

  17 " FROM" +

  18 " emp e, dept d" +

  19 " where" +

  20 " e.deptno=d.deptno" +

  21 " if test=empno!=null and e.empno=#{empno} /if " +

  22 " if test=ename!=null and e.ename=#{ename} /if " +

  23 " if test=job!=null and e.job=#{job} /if " +

  24 " if test=deptno!=null and e.deptno=#{deptno} /if " +

  25 " if test=minsal!=null and maxsal!=null " +

  26 " and e.sal between #{minsal} and #{maxsal} " +

  27 " /if " +

  28 " /script ")

  29 public List MainEntity selectData(MainEntity mainEntity);

  32 @Select("select d.dname,e.empno,e.ename,e.job,e.sal,e.deptno from emp e,dept d where e.deptno=d.deptno")

  33 public List MainEntity selectMainData();

  35 @Select("select d.dname,e.empno,e.ename,e.job,e.sal,e.deptno from emp e,dept d where e.deptno=d.deptno and e.empno=#{primarykey}")

  36 public MainEntity selectByInfoData(Integer primarykey);

  38 @Insert("insert into emp(empno,ename,job,sal,deptno) values(#{empno},#{ename},#{job},#{sal},#{deptno})")

  39 public int insertData(MainEntity mainEntity);

  41 @Update("update emp set ename=#{ename},job=#{job},sal=#{sal},deptno=#{deptno} where empno=#{empno}")

  42 public int updateData(MainEntity mainEntity);

  44 @Delete("delete from emp where empno=#{primarykey}")

  45 public int deleteData(Integer primarykey);

  47 }

 

  MainEntityMapper.java

  6、在service包下创建MainEntityService.java业务层接口

  

 1 package com.service;

 

   3 import com.pojo.MainEntity;

   4 import org.apache.ibatis.annotations.Delete;

   5 import org.apache.ibatis.annotations.Insert;

   6 import org.apache.ibatis.annotations.Select;

   7 import org.apache.ibatis.annotations.Update;

   9 import java.util.List;

  11 public interface MainEntityService {

  13 public List MainEntity show(MainEntity mainEntity);

  15 public int add(MainEntity mainEntity);

  17 public int edit(MainEntity mainEntity);

  19 public int del(Integer primarykey);

  21 }

 

  MainEntityService.java

  7、在service包下创建MainEntityServiceImpl.java业务层接口实现类

  

 1 package com.service;

 

   3 import com.mapper.MainEntityMapper;

   4 import com.pojo.MainEntity;

   6 import java.util.List;

   8 public class MainEntityServiceImpl implements MainEntityService {

   9 private MainEntityMapper mapper;

  11 public MainEntityMapper getMapper() {

  12 return mapper;

  15 public void setMapper(MainEntityMapper mapper) {

  16 this.mapper = mapper;

  19 @Override

  20 public List MainEntity show(MainEntity mainEntity) {

  21 return mapper.selectData(mainEntity);

  24 @Override

  25 public int add(MainEntity mainEntity) {

  26 return mapper.insertData(mainEntity);

  29 @Override

  30 public int edit(MainEntity mainEntity) {

  31 return mapper.updateData(mainEntity);

  34 @Override

  35 public int del(Integer primarykey) {

  36 return mapper.deleteData(primarykey);

  38 }

 

  MainEntityServiceImpl .java

  8、在resouces下创建日志记录文件log4j.properties文件

  

 1 log4j.rootLogger=DEBUG, Console 

 

   2 #Console

   3 log4j.appender.Console=org.apache.log4j.ConsoleAppender

   4 log4j.appender.Console.layout=org.apache.log4j.PatternLayout

   5 log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

   7 log4j.logger.org.apache=INFO

   8 log4j.logger.java.sql.ResultSet=INFO

   9 log4j.logger.java.sql.Connection=DEBUG

  10 log4j.logger.java.sql.Statement=DEBUG

  11 log4j.logger.java.sql.PreparedStatement=DEBUG

 

  log4j.properties

  9、在resouces下创建spring的applicationContext.xml文件

  

 1 ?xml version="1.0" encoding="UTF-8"? 

 

   2 beans xmlns="http://www.springframework.org/schema/beans"

   3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   4 xmlns:aop="http://www.springframework.org/schema/aop"

   5 xmlns:context="http://www.springframework.org/schema/context"

   6 xmlns:tx="http://www.springframework.org/schema/tx"

   7 xmlns:mvc="http://www.springframework.org/schema/mvc"

   8 xsi:schemaLocation="http://www.springframework.org/schema/beans

   9 http://www.springframework.org/schema/beans/spring-beans.xsd

  10 http://www.springframework.org/schema/aop

  11 http://www.springframework.org/schema/aop/spring-aop.xsd

  12 http://www.springframework.org/schema/context

  13 http://www.springframework.org/schema/context/spring-context.xsd

  14 http://www.springframework.org/schema/tx

  15 http://www.springframework.org/schema/tx/spring-tx.xsd

  16 http://www.springframework.org/schema/mvc

  17 http://www.springframework.org/schema/mvc/spring-mvc.xsd

  18 "

  19 !--1.驱动管理数据源--

  20 bean id="dataSource"

  21 property name="driverClassName" value="com.mysql.jdbc.Driver"/

  22 property name="url" value="jdbc:mysql://localhost:3306/ar"/

  23 property name="username" value="root"/

  24 property name="password" value="123456"/

  25 /bean

  26 !--2.数据源事务管理,注意id的必须是transactionManager--

  27 bean id="transactionManager"

  28 property name="dataSource" ref="dataSource"/

  29 /bean

  30 !--3.事务注解驱动--

  31 tx:annotation-driven transaction-manager="transactionManager"/

  32 !--4.sqlsessionfactorybean--

  33 bean id="sqlSessionFactory"

  34 property name="dataSource" ref="dataSource"/

  35 !--引用mybatis主配置文件的写法--

  36 !-- property name="configLocation" value="mybatisConfig.xml"/ --

  38 !--引用mybatis映射文件的写法--

  39 !-- property name="mapperLocations" value="classpath:mapper/*.xml"/ --

  41 !--配置某个包下的类全路径的别名--

  42 !-- property name="typeAliasesPackage" value=""/ --

  43 /bean

  46 !--5.SqlSessionTemplate--

  47 !--采用构造注入--

  48 bean id="sqlSessionTemplate"

  49 constructor-arg ref="sqlSessionFactory"/

  50 /bean

  52 !--6.映射工厂bean,引用映射接口,底层代理会自动帮我们完成映射接口实现类的部分--

  53 bean id="mainEntityMapper"

  54 property name="sqlSessionTemplate" ref="sqlSessionTemplate"/

  55 property name="mapperInterface" value="com.mapper.MainEntityMapper"/

  56 /bean

  58 !--7.业务层service的实现类的构建--

  59 bean id="mainEntityService"

  60 property name="mapper" ref="mainEntityMapper"/

  61 /bean

  62 /beans

 

  applicationContext.xml

  10、在test包下创建MvvmTest.java测试类

  

 1 package com.test;

 

   3 import com.pojo.MainEntity;

   4 import com.service.MainEntityService;

   5 import org.junit.Test;

   6 import org.springframework.context.ApplicationContext;

   7 import org.springframework.context.support.ClassPathXmlApplicationContext;

   9 import java.util.List;

  11 public class MvvmTest {

  12 //加载spring的xml文件

  13 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

  14 //在spring的xml文件中获取service的bean

  15 MainEntityService service=(MainEntityService)ac.getBean("mainEntityService");

  16 // 测试查询所有

  17 @Test

  18 public void selectAll(){

  19 List MainEntity list= service.show(new MainEntity());

  20 for (MainEntity m:list) {

  21 System.out.println(m);

  25 @Test

  26 public void selectData(){

  27 MainEntity entity=new MainEntity();

  28 // entity.setEmpno(7788);

  29 // entity.setEname("SCOTT");

  30 // entity.setJob("ANALYST");

  31 // entity.setDeptno(10);

  32 entity.setMinsal(800.00);

  33 entity.setMaxsal(1300.00);

  35 List MainEntity list= service.show(entity);

  36 for (MainEntity m:list) {

  37 System.out.println(m);

  43 @Test

  44 public void insertData(){

  45 MainEntity entity=new MainEntity(1,"holly","教学",12.00,10,"xxx");

  46 System.out.println(service.add(entity) 0?"add success":"add fail");

  48 @Test

  49 public void updateData(){

  50 MainEntity entity=new MainEntity(1,"holly","教学",16.00,10,"xxx");

  51 System.out.println(service.edit(entity) 0?"update success":"update fail");

  53 @Test

  54 public void deleteData(){

  55 System.out.println(service.del(1) 0?"delete success":"delete fail");

  59 }

 

  MvvmTest .java

  11、运行其中一个?

  

  

  此文章为原创,转载请注明出处!需要本案例源码,理论讲解视频,代码操作视频的,请私信联系作者!

  

  以上就是2、spring+mybatis注解(无mapper实现类)+idea+maven()的详细内容,想要了解更多 2、spring+mybatis注解(无mapper实现类)+idea+maven的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: