mybatis(一)

mybatis 基本开发

mybatis介绍:mybatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注sql语句本身,而不必去创建连接,加载驱动,遍历结果集等繁杂的过程;

mybatis所需基本jar包:mybatis-3.4.5.jar(mybatis基本包) mysql-connector-java-5.1.42-bin.jar(mysql数据驱动包)

环境:eclipse

1:建立工程 mybatis,在WEB-INF/lib下导入基本jar包:

2:创建mybatis基本配置文件(2个,SqlMapConfig.xml(配置文件),mapper.xml(sql语句映射))---在src下创建

  SqlMapConfig.xml:

    

!!!其中:mappers中 需要指明sql映射文件的路径  因为将mapper.xml和SqlMapConfig.xml放在同一目录,所以直接指明名称

  mapper.xml:

3:编写java代码(使用dao方式测试)--在src下创建包与类

编写user用户类,与数据库里的数据对应,添加属性,设置get和set方法

user.java

//数据库user用户
public class User {
//编号
private int id;
//姓名
private String name;
//工资
private double money;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}

}

test1.java  

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

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.Before;
import org.junit.Test;

public class Test1 {
private SqlSessionFactory sqlSessionFactory;

//测试注解,在@Test之前如果没有则会报pointNull错误
@Before
public void createSqlSessionFactory() throws IOException {
String resource="SqlMapConfig.xml";
InputStream inputStream=Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}

//查询用户信息
@Test
public void find() {
SqlSession sqlSession=null;
try {
sqlSession=sqlSessionFactory.openSession();
User user=sqlSession.selectOne("test.selectUser",2);

System.out.println(user);

System.out.println(user.getId()+" "+user.getName()+" "+user.getMoney());

List<User> list=sqlSession.selectList("test.selectName","h");
System.out.println(list.size());
System.out.println(list.toString());
System.out.println(list.get(0).getName());
System.out.println(list.get(1).getName());
} catch (Exception e) {
System.out.println(e);
}finally {
if(sqlSession!=null) {
sqlSession.close();
}
}

}

//添加用户信息
@Test
public void insertTest(){
SqlSession sqlSession=null;
try {
//创建sqlsession回话
sqlSession=sqlSessionFactory.openSession();

//创建用户信息
User user=new User();

user.setName("欢欢1");
user.setMoney(6000);

//添加插入数据
sqlSession.insert("test.insert",user);

//提交事务 对于插入操作,需要用事务

sqlSession.commit();

System.out.println("插入成功");

} catch (Exception e) {
// TODO: handle exception
System.err.println(e);
}finally {
sqlSession.close();
}

}

//删除数据
@Test
public void delete() {
SqlSession sqlSession = null;
try {
sqlSession=sqlSessionFactory.openSession();
sqlSession.delete("test.delete", 11);

sqlSession.commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
sqlSession.close();
}
}

//更新数据

@Test
public void update() {
SqlSession sqlSession=null;
try {
sqlSession=sqlSessionFactory.openSession();
User user=new User();
user.setName("欢欢2");
user.setId(14);
sqlSession.update("test.update", user);

sqlSession.commit();

System.out.println("更新成功");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
sqlSession.close();
}
}

}

时间: 2024-08-05 07:05:41

mybatis(一)的相关文章

使用MyBatis Generator自动生成实体、mapper和dao层

通过MyBatis Generator可以自动生成实体.mapper和dao层,记录一下怎么用的. 主要步骤: 关于mybatis从数据库反向生成实体.DAO.mapper: 参考文章:http://www.cnblogs.com/wangkeai/p/6934683.html第一种方式:main方法运行(推荐) 1.在pom.xml中加入插件依赖: 2.写mbgConfiguration.xml文件,jdbc.properties文件 3.写/SSM/src/main/java/main/Ge

SSM整合(spring,spirngmvc,mybatis)

整合思路   准备环境:导入jar包(spring mybatis  dbcp连接池  mysql驱动包 log4j) 工程结构: --------------------------- 1.  整合dao mybatis和spring进行整合   applicationContext-dao.xml 配置: 1.数据源 2.SqlSessionFactory 3.mapper扫描器 创建po以及mapper(通过逆向工程,这里不再演示) 针对综合查询mapper,一般情况会有关联查询,建议自定

SpringBoot 2.SpringBoot整合Mybatis

一.创建Springboot的配置文件:application.properties SpringApplication 会从 application.properties 文件中加载配置信息,下面是添加Spring配置信息的文件目录顺序: 当前目录下的/config子目录中 当前目录中 一个 classpath 包下的 /config 目录中 classpath 根目录中 大家根据自己习惯来即可. /application.properties 文件配置如下: spring.datasourc

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

MyBatis学习(四)XML配置文件之SQL映射的XML文件

SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select> 这个语句被称作selectUser,接受一个int类型的参数,

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

2017年9月3日 Spring及Mybatis中连接数据库的不同方式

连接数据库用spring和mybatis中使用的方法可以不同,mybaits可以不用写数据库的配置文件 Spring的连接方法 <!-- 读取属性文件(.properties)的内容 --> <!-- location:指定要读取的属性文件的位置及文件名. 注: classpath:表示依据类路径去查找 容器依据路径读取属性文件的内容, 并且将这些内容存放到Properties对象上 --> //数据库的登入数据文件 //文件名db.properties #db connectio

mybatis中&quot;#&quot;和&quot;$&quot;的区别

mybatis中"#"和"$"的区别 动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析.mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}. 在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别: select * from user where name = #{name}; select * from

mybatis中的mapper接口文件以及example类的实例函数以及详解

##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列. example.setDistinct(false)//去除重复,boolean型,true为选择不重复的记录. Criteria criteria = new Example().createCriteria(); is null;is not null; equal to(value);not equ

mybatis与hibernate的区别

本文转载自:http://blog.csdn.net/wangpeng047/article/details/17038659 以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架.随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点: 1. hibernate是全自动,而mybatis是半自动. hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql