01_根据Id查询User的数据
【工程目录】
【数据库表中内容 user表】
【sqlMapConfig.xml配置文件主要内容】
简述:sqlMapConfig.xml配置文件主要有两个作用:
1.配置和数据连接的相关信息,例如事务管理、数据库连接池等信息。
2.加载映射文件,例如本项目中的user.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>
- <!-- 和Spring整合之后这些配置将删除 -->
- <environments default="development">
- <environment id="development">
- <!-- 使用jdbc事务管理 -->
- <transactionManager type="JDBC" />
- <!-- 数据库连接池 -->
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.jdbc.Driver"/>
- <property name="url"
- value="jdbc:mysql://localhost:3306/mybatisdb?useUnicode=true&characterEncoding=UTF-8" />
- <property name="username" value="root"/>
- <property name="password" value=""/>
- </dataSource>
- </environment>
- </environments>
- <!-- 加载映射文件 -->
- <mappers>
- <mapper resource="sqlmap/user.xml"/>
- </mappers>
- </configuration>
【user.xml】
在user.xml文件中编写相关的CRUD的代码
- <?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 namespace="test">
- <select id="findUserById" parameterType="int" resultType="com.Higgin.Mybatis.po.User">
- SELECT * from USER WHERE id=#{id}
- </select>
- </mapper>
解释:
1.namespace命名空间,作用就是对sql进行分类化管理。注意:使用mapper代理方法开发,namespace有特殊重要的作用。
2.在<mapper>映射文件中可以配置很多的sql语句,除了<select>还有<delete>、<update>、<insert>等等
3.通过select 执行数据库查询,将sql语句封装到mapperStatement对象中,所以将id成为statement的id
4.parameterType:指定输入参数的类型,这里指定是int类型
5.#{}:表示一个占位符
6.#{id}:其中的占位符表示接入输入的参数,参数名称为id,若输入的参数是简单类型,#{}中的参数名称可以任意,既可以是value或者其他名称
7.resultType:指定sql输出结果所映射的java类型对象,select指定resultType表示将单条记录映射成的User对象
【log4j.properties】
- #Global logging configuration
- #在开发环境下,日志级别要设置成DEBUG
- log4j.rootLogger=DEBUG,stdout
- #Console output...
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
【User.java】
- package com.Higgin.Mybatis.po;
- import java.util.Date;
- public class User {
- //属性名和数据库表字段对应
- private int id;
- private String username;
- private String sex;
- private Date birthday;
- private String address;
- //忽略get、set、toString方法....
- }
【MyBatisTest.java】
- public class MyBatisTest {
- @Test
- public void testFindUserByID() throws IOException{
- //mybatis配置文件
- String resource="SqlMapConfig.xml";
- //得到配置文件
- InputStream inputStream=Resources.getResourceAsStream(resource);
- //创建会话工厂,传入mybatis的配置文件信息
- SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
- //通过工厂得到SqlSession
- SqlSession sqlSession=sqlSessionFactory.openSession();
- //通过SqlSession操作数据库
- //第一个参数:映射文件中statement的id,等于:namespace+"."+statement的id
- //第二个参数:指定映射文件中的所匹配的parameterType类型的参数
- User user=sqlSession.selectOne("test.findUserById", 2);
- System.out.println(user.toString());
- //释放资源
- sqlSession.close();
- }
- }
【运行结果】
01_根据Id查询User的数据的更多相关文章
- MySQL 中根据A表的ID查询B表数据
例1:查询某个文章及其对应的评论(单个详情) ) FROM A; 例2:查询分类表中,每种分类各包含多少商品(汇总) SELECT category_id, (SELECT count(goods_i ...
- yii根据id查询一条数据
model层 public function selectone($ag_id=''){ return $this->findBySql("SELECT * FROM agency w ...
- mongoose实现批量删除和多id查询的api/方法
删除一条数据:传入id Model.remove({ _id: 传入的id }); 删除多条数据,传入id数组,使用$in方法 Model.remove({ _id: { $in: ['aID', ' ...
- 根据id查询数据(向前台返回json格式的数据)
/** *@description 根据主键查询Bean */ @RequestMapping(value="/getBean/{getId}") public void getB ...
- sql查询删除重复数据
数据库UserInfo 删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户 01.根据多个字段查询重复数据 with data1 as( select MobilePhone,N ...
- 使用PreparedStatement 查询一条数据 封装成一个学生的Student1对象
package cn.lijun.entity; public class Student1 { private int id; private String sname; private int g ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- SQL 中 not in 查询不到数据问题
在开发的过程中,遇到过not in 始终查询不到数据问题 select * from T_CustomerInfo where CustomerID not in (select CustomerID ...
- Struts2自定义标签2自定义一个按班级id查询出该班级下的学生,存放进值栈,并遍历出来。
Struts2自定义标签的流程概念: (1)需要两个类:标签类(继承相应的tag类),基本类(继承Component).标签类专门负责从客户端取得用户输入的一些属性,这个普通的jsp自定义标签一样,取 ...
随机推荐
- ubuntu下安装opencv 2.4.9 脚本,支持摄像头和cuda
arch=$(uname -m) if [ "$arch" == "i686" -o "$arch" == "i386" ...
- C 数据结构1——线性表分析(顺序存储、链式存储)
之前是由于学校工作室招新,跟着大伙工作室招新训练营学习数据结构,那个时候,纯碎是小白(至少比现在白很多)那个时候,学习数据结构,真的是一脸茫然,虽然写出来了,但真的不知道在干嘛.调试过程中,各种bug ...
- 细说Oracle数据库与操作系统存储管理二三事
在上大学的时候,学习操作系统感觉特别枯燥,都是些条条框框的知识点,感觉和实际应用的关联不大.发现越是工作以后,在工作中越想深入了解,发现操作系统知识越发重要.在实践中结合理论还是不错的一种学习方法.自 ...
- A Tour of Go Slicing slices
---恢复内容开始--- Slices can be re-sliced, creating a new slice value that points to the same array. The ...
- win32键盘记录 -- 自定义窗口类
最近学了些关于window api编程的知识,于是琢磨编写一些键盘记录器,能够把输入的按键输出到窗口内,并且实现窗口自动滚动. 封装窗口类使用了GWL_USERDATA字段来保存this指针,比较容易 ...
- linq to sql 博客集锦
Linq to sql 比较全面的学习博客 http://www.cnblogs.com/aehyok/tag/Linq%20To%20Sql/ 使用LINQ TO SQL基于Respository ...
- redis-BOOK
https://www.gitbook.com/book/gnuhpc/redis-all-about/details
- KALI 2.0优化
1.首选项没有主菜单,系统管理 apt-get install alacarte 2.APT源 #官方源deb http://http.kali.org/kali kali main non-free ...
- 转:ORACLEERP开发基础之EBS开发基础
转自:http://blog.itpub.net/8781091/viewspace-1012244/ [内容导航] 第1页:开发工具安装 第2页:增加数据块 第3页:注册表单FORM 第4页:注册请 ...
- 从键盘输入当月利润I,求应发放奖金总数?
企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%:20万到40万之间时 ...