2.mybatis入门实例 连接数据库进行查询
1.新建项目,添加mybatis和mysql的jar包
2.在mysql中新建表user[id,name,age]
- CREATE TABLE `users` (
- `id` int(11) NOT NULL auto_increment,
- `NAME` varchar(50) default NULL,
- `age` int(11) default NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8
3.新建User类,与db的表对应
- public class User {
- public User() {
- }
- public User(int id, String name, int age) {
- super();
- this.id = id;
- this.name = name;
- this.age = age;
- }
- private int id;
- private String name;
- private int age;
- 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 int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
- }
- }
4.在src目录下面新建mybatis的配置文件conf.xml
- <?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>
- <!--
- development:开发模式
- work:工作模式
- -->
- <environments default="development">
- <environment id="development">
- <transactionManager type="JDBC" />
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/mybatis?autoReconnect=true&useUnicode=true&characterEncoding=utf8" />
- <property name="username" value="root" />
- <property name="password" value="root" />
- </dataSource>
- </environment>
- </environments>
- </configuration>
5.新建userMapper.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">
- <!--
- 为了使用mapper的标签,在此要在Window-Preference-Xml Catalog中配置mybatis-3-mapper.dtd,
- key=-//mybatis.org//DTD Mapper 3.0//EN
- -->
- <mapper namespace="com.mlxs.mybatis.test.userMapper">
- <select id="getUser" parameterType="int" resultType="com.mlxs.mybatis.test1.User">
- select * from users where id=#{id}
- </select>
- <!-- 添加,参数是一个user对象 -->
- <insert id="addUser" parameterType="com.mlxs.mybatis.test1.User">
- insert into users(name,age) values(#{name},#{age})
- </insert>
- <!-- 更新,参数是一个user对象 -->
- <insert id="updateUser" parameterType="com.mlxs.mybatis.test1.User">
- update users set name=#{name}, age=#{age} where id=#{id}
- </insert>
- <!-- 添加,参数是一个user对象 -->
- <insert id="deleteUser" parameterType="int">
- delete from users where id=#{id}
- </insert>
- <!-- 返回一个list,resultType="包名+类名":必须在类中有个无参的构造函数,不然会报错:
- java.lang.NoSuchMethodException: com.mlxs.mybatis.test1.User.<init>()
- Caused by: java.lang.NoSuchMethodException: com.mlxs.mybatis.test1.User.<init>()
- at java.lang.Class.getConstructor0(Class.java:2706)
- at java.lang.Class.getDeclaredConstructor(Class.java:1985)
- at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:57)
- -->
- <select id="selectAllUsers" resultType="com.mlxs.mybatis.test1.User">
- select * from users
- </select>
- </mapper>
将mapper配置文件添加到mybatis的配置文件conf.xml的mappers标签中:
- <!-- 在conf.xml文件中注册Mapper.xml文件和Mapper类 -->
- <mappers>
- <mapper resource="com/mlxs/mybatis/test1/userMapper.xml" />
- </mappers>
6.添加测试类,获取一个user的信息
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.Reader;
- import org.apache.ibatis.io.Resources;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
- public class _Test1SelectOne {
- public static void main(String[] args) throws IOException {
- //加载mybatis的xml文件(同时加载加载关联的映射文件)
- //1.使用类加载器加载mybatis的配置文件
- // InputStream config = _Test1SelectOne.class.getClassLoader().getResourceAsStream("conf.xml");
- //2.使用mybatis的Resources类加载
- Reader config = Resources.getResourceAsReader("conf.xml");
- //创建sqlSessionFactory
- SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(config);
- //创建sqlSession,执行mapper.xml中的sql语句
- SqlSession sqlSession = sessionFactory.openSession();
- //执行映射文件中的sql(namespace + select的id)
- String sql = "com.mlxs.mybatis.test.userMapper.getUser";
- User user = sqlSession.selectOne(sql, "1");//查询id=1
- //关闭session
- sqlSession.close();
- System.out.println(user);
- }
- }
7.结果
User [id=1, name=Tom, age=12]
8.测试 增删改查,导入junit包,添加测试类
- import java.util.List;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.junit.Test;
- import com.mlxs.mybatis.util.MyBatisUtil;
- public class _Test2UserCrud {
- @Test
- public void addUser(){
- SqlSessionFactory sessionFactory = MyBatisUtil.getSessionFactory();
- SqlSession sqlSession = sessionFactory.openSession();
- String statement = "com.mlxs.mybatis.test.userMapper.addUser";
- int count = sqlSession.insert(statement, new User(0, "add1", 10));
- sqlSession.commit();
- sqlSession.close();
- System.out.println("add count:"+count);
- }
- @Test
- public void updateUser(){
- SqlSessionFactory sessionFactory = MyBatisUtil.getSessionFactory();
- SqlSession sqlSession = sessionFactory.openSession();
- String statement = "com.mlxs.mybatis.test.userMapper.updateUser";
- int count = sqlSession.update(statement, new User(3, "update2", 100));
- sqlSession.commit();
- sqlSession.close();
- System.out.println("update count:"+count);
- }
- @Test
- public void delUser(){
- SqlSessionFactory sessionFactory = MyBatisUtil.getSessionFactory();
- boolean autoCommit = true;//自动提交,不需手动commit
- SqlSession sqlSession = sessionFactory.openSession(autoCommit);
- String statement = "com.mlxs.mybatis.test.userMapper.deleteUser";
- int count = sqlSession.delete(statement, 4);
- sqlSession.close();
- System.out.println("del count:"+count);
- }
- @Test
- public void selectAll(){
- SqlSessionFactory sessionFactory = MyBatisUtil.getSessionFactory();
- boolean autoCommit = true;//自动提交,不需手动commit
- SqlSession sqlSession = sessionFactory.openSession(autoCommit);
- String statement = "com.mlxs.mybatis.test.userMapper.selectAllUsers";
- List<User> userList = sqlSession.selectList(statement);
- sqlSession.close();
- System.out.println(userList);
- }
- }
2.mybatis入门实例 连接数据库进行查询的更多相关文章
- Mybatis入门实例
MyBatis 简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...
- Mybatis入门实例解析
写在前面:本文全程根据Mybatis官网进行入门讲解.毫无疑问,官方文档是学习这门技术最权威的资料,与此同时我们也知道官方文档对待入门小白基本上不太友好,没有入门demo.开篇就是小白们不懂的内容.有 ...
- MyBatis入门实例-包括实体类与数据库字段对应&CLOB字段处理
1.我的开发环境是 jdk1.7+ecplise+oracle 11g 用到的jar包:mybatis-3.1.1.jar ojdbc6.jar 2.项目整体结构 3.首先配置conf.xml ...
- MyBatis入门实例 ——Mapper.xml(zz)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBL ...
- mybatis入门案例分析
mybatis入门案例分析 一.设计模式分析 public class MybatisTest { public static void main(String[] args) throws Exce ...
- mybatis 详解(二)------入门实例(基于XML)
通过上一小节,mybatis 和 jdbc 的区别:http://www.cnblogs.com/ysocean/p/7271600.html,我们对 mybatis有了一个大致的了解,下面我们通过一 ...
- mybatis 详解(三)------入门实例(基于注解)
1.创建MySQL数据库:mybatisDemo和表:user 详情参考:mybatis 详解(二)------入门实例(基于XML) 一致 2.建立一个Java工程,并导入相应的jar包,具体目录如 ...
- mybatis学习一:基于xml与注解配置入门实例与问题
注:本case参考自:http://www.cnblogs.com/ysocean/p/7277545.html 一:Mybatis的介绍: MyBatis 本是apache的一个开源项目iBatis ...
- MyBatis基础入门《八》查询参数传入Map
MyBatis基础入门<八>查询参数传入Map 描述: 在执行select查询数据的时候,方法传入的参数是java.util.Map类型. 接口方法: xml文件 注意: 书写SQL语句的 ...
随机推荐
- linux strace
yum install -y strace 若某一进程占用cpu高可以用strace -p pid进行跟踪查看 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直 ...
- json校验
直接百度:json在线解析 或 json.cnhttp://json.cn/ json格式校验的.这个更加简洁些.
- ASP.NET MVC下的四种验证编程方式【转】
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...
- flex 调用gp服务
同步异步说明: gp服务分为同步和异步两种模式,两者的区别是:同步:适合于快速的处理,数据量较小,本质区别在于同步模式,服务器处理之后,处理结果并不在服务器端保存,而是将结果发送至客户端,由客户端去显 ...
- Reverse Linked List II
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
- 安装新版xampp后apache无法启动提示:Apache Service detected with wrong path解决方案
我以前安装过xampp,因为学习thingPHP需要升级PHP5.0以上,所以我就卸掉了xampp,从新安装新版本的xampp其中PHP是最新版的,但是安装后启动xampp提示如下:Apache Se ...
- git 上传本地文件到github
git 上传本地文件到github 1 git config --global user.name "Your Real Name" 2 git config --global u ...
- PHP 设计模式之观察者模式
现在有两派,有的人建议使用设计模式,有的人不建议使用设计模式!这就向写文章一样,有的人喜欢文章按照套路走,比如叙事性质的文章,时间,地点,人物,事件.而有的人喜欢写杂文或者散文,有的人喜欢写诗词! 现 ...
- Python 中translate()与replace()区别
translate函数和replace函数一样,用于替换字符串中的某个部分,但是和replace不同,translate只处理单个字符,而且可以同时进行多个替换.在使用translate函数转换之前, ...
- 巧用ViewPager 打造不一样的广告轮播切换效果
一.概述 如果大家关注了我的微信公众号的话,一定知道我在5月6号的时候推送了一篇文章,文章名为Android超高仿QQ附近的人搜索展示(一),通过该文可以利用ViewPager实现单页显示多个Item ...