springboot怎么集成mybatis,mybatis连接oracle数据库

  springboot怎么集成mybatis,mybatis连接oracle数据库

  00-1010一、原后台,连接数据库的步骤二。集成过程springboot集成mybatis以连接到oracle数据库。

  00-1010在实际开发过程中离不开数据库。如果不使用任何框架,连接数据库的代码就会分散在整个项目中,连接数据库的各种问题就很容易出现。

  00-1010 1.加载驱动程序(无论什么数据库,记录什么驱动程序)2。获取连接3。写sql4。创建语句5。执行sql语句并处理结果6。最后一次自下而上关闭连接(容易出现异常)。在实际开发中,数据库操作还是非常频繁的。如果按照这个步骤来连接数据库,会大大影响性能,用户体验也不好。Mybatis内部封装了jdbc,开发者只需要考虑sql语句的编写和返回结果的处理,其余的都封装了,这是极好的。

  大大减少开发工作量。

  00-1010稀里糊涂的就综合了,不过他是个傻子。

  

目录

1 .工具:Spring Boot、IDEA、甲骨文、MyBatis、Maven…

 

  2.在前一项目成功建设的基础上:

  2.1在POM.xml文件中添加依赖关系:

  !-my batis-dependency groupIdorg.mybatis.spring.boot/groupId artifactId my batis-spring-boot-starter/artifactId版本1.1.1/version /dependency!-与数据库操作相关的依赖项-依赖项groupIdorg.springframework.boot/groupId artifactid spring-boot-starter-JDBC/artifactid/dependency!-Oracle-dependency groupIdcom.oracle/groupId artifactid JDBC 6/artifactid版本11.2.0.1.0/version/dependency注意:您可以在以下位置看到它,表示依赖项添加成功:

  如果没有:就需要手动添加依赖:

  将驱动程序(ojdbc6.jar)CD下载到下载的OJ DBC 6 . jar所在的路径,并执行该命令。

  mvn install : install-file-DgroupId=com . Oracle-darti factd=OJ DBC 6-d version=11 . 2 . 0 . 1 . 0-d packaging=jar-Dfile=OJ DBC 6 . jar

  出现“构建成功”,表示成功。但是文件位置可能是错的,需要移到maven的责任区。将生成的oracle文件复制到相应的目录中。

  查看reponsitory的位置:

  放的路径如下:

  3.成功添加依赖关系后,需要配置mvc层。

  3.1控制器层:

  //第一行可以写@Restcontroller(返回json的控制器)//@ rest controller=@ controller @ response body @ controller公共类person controller { @ resource privatep

  ersonIService personIService; @RequestMapping("/person") @ResponseBody//json返回 public List<Person> findAll(){ List<Person> list = personIService.findAll(); return list;//[{},{}] } @RequestMapping("/findPersonByid/{id}") @ResponseBody//返回json类型 public Person findByid(@PathVariable("id") Integer id){ return personIService.findByid(id);//{} }}3.2 service 层:

  

@Servicepublic class PersonServiceImpl implements PersonIService{ @Autowired private IPersonDao dao; public List<Person> findAll(){ return dao.findAll(); } public Person findByid(Integer id){ return dao.findByid(id); }

这里有个细节问题:这个dao可能会报错,但是不影响,如果看不习惯就在这里设置下:

 

  

 

  3.3 dao层:注意:只有接口,没有实现类

  

//不使用@Mapper注解,通过使用.xml文件,在对应的.xml写sql语句,查出数据并返回public interface IPersonDao { public List<Person> findAll(); public Person findByid(@Param("id") Integer id);}另外一种方法(拿其他栗子举例)://使用了@Mapper注解 ,就不需要再写.xml文件@Mapperpublic interface IEmployeeDao { @Select("select * from tbl_emp e where e.name=#{name}") public List<Employee> findEmpByName(@Param("name") String name);}

3.4 entity 层:

 

  

/** * 持久化类 * by wx 2019-04-08 */public class Person implements Serializable { private static final long serialVersionUID = -6172780607087661025L; private Integer id; private String name; private String addr; private String company; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; }}

3.5 在application.yml文件配置连接数据库:

 

  

 

  在这里遇到了2个问题:

  1.一直报这个驱动类找不到,但是这个驱动类jar包已经添加到项目了,并且我也反编译jar包,确认路径是对的。后来将target文件夹删掉重新编译,就没有问题了。

  2.我用sys/root作为用户名/密码连接,报,拒接连接,让我创建sys连接并授权之类的,然后我就用/as sysdba登陆 创建了一个用户,如图所示(因为之前已经建立了c##root用户,这里就拿c##wx做例子):

  

 

  由于tbl_person表是建立在sysdba用户下的,在c##root用户下不能查询,在次用户下想访问就需要将这个表单独授权给c##root用户,同时还需要建同义词,这样就可以省略前缀sys.,直接通过表名就可以操作。

  如图所示:

  

 

  3.6 入口函数配置扫描mapper,即:@MapperScan(com.wx.springbootdemo.dao)

  

@RestController@SpringBootApplication@MapperScan("com.wx.springbootdemo.dao")//要扫描的dao包public class SpringbootdemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootdemoApplication.class, args); }}

3.7 mapper映射文件:

 

  

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.wx.springbootdemo.dao.IPersonDao"> <select id="findAll" resultType="com.wx.springbootdemo.entity.Person"> select id,name,addr ,company from tbl_person </select> <select id="findByid" resultType="com.wx.springbootdemo.entity.Person"> select * from tbl_person where id = #{id} </select> </mapper>

3.8 项目结构:

 

  

 

  测试:先启动项目,然后如下访问:

  

 

  另一种测试方法(Spring Boot 内嵌的tools),如下图:

  

 

  

 

  

 

  

个人感悟

Mybatis:虽然做到了代码和sql语句分离,但是无法做到数据库无关性,即换了一个数据库例如mysql,很多语句就得做修改。Hibernate:是ORM框架,做到了数据库无关性,很好的封装了底层jdbc。支持独特的Hql查询,也支持原生的sql语句。以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT。

 

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

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