farmwork----mybatis

1. 大体分为以下四步:

  1. pom.xml
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.5</version>
</dependency>

  1. 配置文件 mybatis-config.xml
    连接数据库 url, driver, username, password
<mapper resource="包名/XXMapper.xml" />
  1. 映射文件 XXMapper.xml
<mapper namespace="包名.XXMapper"> // 防止命名冲突
	<insert id="insert" parameterType="实体类型"> 插入sql, #{实体属性值} </insert>
	<update id="update" parameterType="实体类型"> 更新sql, #{实体属性值} </update>
	<delete id="delete" parameterType="基本类型"> 删除sql, #{任意字符串} </delete>
	<select id="查询单个" parameterType="查询条件类型" resultType="实体类型"> 查询sql </select>
	<select id="查询多个" parameterType="查询条件类型" resultType="实体类型"> 查询sql </select>
</mapper>
  1. java 代码
SqlSessionFactory factory = new SqlSessionFactoryBuilder(配置文件的输入流);
SqlSession sqlSession = factory.openSession();
sqlSession.insert("namespace.id", 参数对象);
sqlSession.update("namespace.id", 参数对象);
sqlSession.delete("namespace.id", 参数对象);
实体类型 obj = sqlSession.selectOne("namespace.id", 参数对象); // 查询单个结果
List<实体类型> obj = sqlSession.selectList("namespace.id", 参数对象); // 查询单个结果
sqlSession.commit(); // 提交事务
sqlSession.close(); // 关闭资源

实例:

1>目录:
在这里插入图片描述
2>配置文件 mybatis-config.xml
在这里插入图片描述
3>映射文件

    <?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的包名.mapper的文件名"  主要是防止sql名字冲突 -->
  <mapper namespace="com.westos.mapper.UserMapper">
<!-- id="SQL语句的唯一标识"  
parameterType="sql语句需要的参数类型" 
-->
<!-- User(username,password) #{写的是参数对象的属性名}- -->
<insert id="insert" parameterType="com.westos.entity.User">
    insert into user (username, password) values (#{username},#{password})
</insert>


<!-- #{写的是参数对象的属性名}-->
<update id="update" parameterType="com.westos.entity.User">
    update user set password = #{password} where username = #{username}
</update>

<!-- java.lang.String 可以简化为 string 基本类型和字符串 #{任意字符名称}-->
<delete id="delete" parameterType="string">
    delete from user where username=#{abc}
</delete>

<!-- 查询单条记录,根据用户名查询
    resultType="结果类型"
-->
<select id="selectOne" parameterType="string" resultType="com.westos.entity.User">
    select username, password from user where username=#{abc}
</select>

<!-- 在这里仍然是集合中元素的类型 -->
<select id="selectAll" resultType="com.westos.entity.User">
    select username, password from user
</select>

</mapper>

4>java代码

public class TestUser {

static SqlSessionFactory factory;

static {
    try {
        // 通过java代码调用mybatis
        // SqlSession 用来真正执行增删改查, SqlSessionFactory 是用来创建sqlSession
        // 1) 读取配置文件的输入流
    FileInputStream is = new FileInputStream("src/main/resources/mybatis-config.xml");
        // 2) 创建sqlSession工厂类
        factory = new SqlSessionFactoryBuilder().build(is);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Test
public void test1() throws Exception {

    // 3) 创建sqlSession, openSession是创建一个新的SqlSession
    SqlSession sqlSession = factory.openSession();
   // 4) 找到sql语句并执行
    User user = new User();
    user.setUsername("李四");
    user.setPassword("123");
    sqlSession.insert("com.westos.mapper.UserMapper.insert", user);

    // 5) 提交事务
    sqlSession.commit(); // 当然可以在 catch sqlSession.rollback():

    // 6) 关闭sqlSession
    sqlSession.close();
}

@Test
public void test2(){
    SqlSession sqlSession = factory.openSession();
    User user = new User();
    user.setUsername("李四");
    user.setPassword("456");
    sqlSession.update("com.westos.mapper.UserMapper.update", user);
    sqlSession.commit();
    sqlSession.close();
}

@Test
public void test3() {
    SqlSession sqlSession = factory.openSession();
    sqlSession.delete("com.westos.mapper.UserMapper.delete", "张三");
    sqlSession.commit();
    sqlSession.close();
}

@Test
public void test4() {
    SqlSession sqlSession = factory.openSession();
    User user = sqlSession.selectOne("com.westos.mapper.UserMapper.selectOne", "张三");     
    System.out.println(user);
    sqlSession.close();

}

@Test
public void test5() {
    SqlSession sqlSession = factory.openSession();
    List<User> list = sqlSession.selectList("com.westos.mapper.UserMapper.selectAll");
    for (User user : list) {
        System.out.println(user);
    }
    sqlSession.close();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值