当前位置:   article > 正文

基于SpringBoot myBatis连接数据库暨操作数据库_mybatis连接数据库的代码

mybatis连接数据库的代码

连接数据库

引入依赖

在创建springboot工程的时候引入Mybatis和Mysql驱动

引入德鲁伊连接池

  1. <dependency>
  2. <!-- Druid连接池依赖 -->
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>druid-spring-boot-starter</artifactId>
  5. <version>1.2.8</version>
  6. </dependency>

 

在application.properties中配置数据库的连接信息

1.连接数据库

打开这个文件

下面代码中localhost要替换成自己数据库服务器的地址-3306是数据库的端口号 查看一下自己的端口号是多少---mybatis 是自己创建的数据库名称

  1. #驱动类名称
  2. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  3. #数据库连接的url
  4. spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
  5. #连接数据库的用户名
  6. spring.datasource.username=root
  7. #连接数据库的密码
  8. spring.datasource.password=1234
  9. #配置mybatis的日志, 指定输出到控制台
  10. mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  11. #开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
  12. mybatis.configuration.map-underscore-to-camel-case=true

创建一个UserMapper接口用来查询数据 

  1. @Mapper //这一步会自动将查询到的数据封装成List对象并且 放到bean容器中
  2. public interface UserMapper {
  3. @Select("select * from user") //里面操作数据库的语句
  4. public List<User> list();
  5. }

 新建一个类,注入UserMapper对象,执行sql操作

  1. @Autowired //容器注入
  2. private UserMapper userMapper;
  3. public void testListUser(){
  4. List<User> userList = userMapper.list();
  5. userList.stream().forEach(user -> {
  6. System.out.println(user);
  7. });
  8. }

操作数据库

1,基于注解操作数据库

  1. @Mapper
  2. public interface EmpMapper {
  3. @Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) values (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime})")
  4. public void insert(Emp emp);
  5. }

2,参数占位符

  • #{...}                ---------------------一般使用这个,不会存在sql注入问题

    • 执行SQL时,会将#{…}替换为?,生成预编译SQL,会自动设置参数值

    • 使用时机:参数传递,都使用#{…}

  • ${...}

    • 拼接SQL。直接将参数拼接在SQL语句中,存在SQL注入问题

    • 使用时机:如果对表名、列表进行动态设置时使用

3,为解决sql注入问题 引入 concat()字符串拼接函数

使用方法:

select * from user where name like concat('%','张','%');

4,XML映射文件操作数据库 

  • XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)

  • XML映射文件的namespace属性为Mapper接口全类名一致
  • XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。

resultType指的是单条记录所封装的类型

resultMap指的是多条记录所封装的类型

  1. <select id="limitList" resultType="com.itheima.pojo.Student">
  2. SELECT * from student
  3. <where>
  4. <if test="name!=null">
  5. name like concat('%',#{name},'%')
  6. </if>
  7. <if test="educationId!=null">
  8. and education_id=#{educationId}
  9. </if>
  10. <if test="number!=null">
  11. and number like concat('%',#{number},'%')
  12. </if>
  13. <if test="classId!=null">
  14. and class_id=#{classId}
  15. </if>
  16. </where>
  17. </select>

mybatisx插件 在IDEA中用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/498129
推荐阅读
相关标签
  

闽ICP备14008679号