SpringBoot集成mybatis连接oracle的图文教程


当前第2页 返回上一页

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

//不使用@Mapper注解,通过使用.xml文件,在对应的.xml写sql语句,查出数据并返回
public interface IPersonDao {
    public List<Person> findAll();
    public Person findByid(@Param("id") Integer id);
}
另外一种方法(拿其他栗子举例):
//使用了@Mapper注解 ,就不需要再写.xml文件
@Mapper
public 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语句。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。


标签:Oracle

返回前面的内容

相关阅读 >>

如何删除oracle用户?

oracle数据表分析

oracle ora-00988 missing or invalid password 错误

oracle使用索引和不使用索引时的性能对比

oracle12创建用户指定表空间(代码)

查看表结构的sql语句是什么

oracle表空间管理和用户管理介绍

oracle查看当前账号的相关信息

oracle锁表的原因

oracle如何修改用户密码?

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...