MyBatis在Maven项目的导入与部分数据库操作

入门MyBatis+Spring :Mybatis在maven项目的导入与数据库操作

一、Mybatis简介:

优点

sql和java编码分开,功能边界清晰,一个专注业务、一个专注数据

优点:

  1. 与JDBC相比,减少了50%以上的代码量。
  2. MyBatis是最简单的持久化框架,小巧并且简单易学。
  3. MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
  4. 提供XML标签,支持编写动态SQL语句。
  5. 提供映射标签,支持对象与数据库的ORM字段关系映射。

二、maven项目的基本目录结构:

新建maven项目目录结构
main目录存放开发代码,test目录存放测试代码,pom.xml存放所有的项目依赖(查询项目依赖:https://mvnrepository.com/)
注:引入依赖后在外部库查看是否自动导入(很明显此过程需要联网环境进行)。

三、mybatis的主配置文件以及映射配置文件:

mybatis的主配置文件放在resources下,示例内容如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!-- 使用数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"//>
                <property name="url" value=""${url}"//>
                <property name="username" value="${username}"//>
                <property name="password" value="${password}"//>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射配置文件的路径 -->
    <mappers>
        <!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        <mapper resource="mapper/usersMapper.xml"></mapper>
    </mappers>
</configuration>

显然通过上面的代码块可以看出mybatis通过映射实体类对象和表来对数据库操作。
那么接着我们在resources下建立mapper文件夹,在mapper下定义映射关系(映射配置文件)。示例xml内容如下:

<?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">
<!-- namespace 命名空间
    通常情况,命名空间的值,就是当前操作实体类的全名称-->
<mapper namespace="bin.User">
   <select id="userList" resultType="bin.User">
       select * from user_b
   </select>
    <select id="findUserByName" resultType="bin.User">
       select * from user_b where uname like '%${value}%'
   </select>
</mapper>

代码块有相关注释,此处不再赘叙。

四、测试demo:

import bin.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TestDemo {

    @Test
    public void testDemo1() throws IOException {
        //初始化mybatis配置环境
        String resource = "mybatis.xml";
        InputStream ins = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(ins);
        //打开和数据库的会话
        SqlSession session = factory.openSession();
        List<User> list = session.selectList("findUserByName","p");
        for (User user:list
             ) {
            System.out.println(user);
        }
        session.close();
    }
}

五、mybatis的数据库操作(部分)

1.查询表中全部信息:

mapper下xml内容:

<select id="userList" resultType="包名.类名">
       select * from 表名
 </select>

调用时相关代码:

List<User> list = session.selectList("findUserByName");

2.模糊查询:

mapper下xml内容:

<select id="findUserByName" resultType="包名.类名">
       select * from 表名 where uname like '%${value}%'
 </select>

调用时相关代码:

List<User> list = session.selectList("findUserByName","p");

注意:select标签中对SQL语句的“${}”符号,表示拼接SQL串,将接收到的参数内容不加任何修饰地拼接在SQL中,在大括号中只能使用value代表其中的参数,然而在Web项目中,如果没有防范SQL注入的机制,要谨慎使用此方式拼接SQL语句串,因为可能会引起SQL注入的风险。

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值