先上一个搭建完的项目结构截图:

相对比较重要的配置文件有 db.properties , SqlMappingConfig.xml , mapper/User.xml , log4j.properties (主要是 mybatis 有日志管理这些依赖 后面 pom.xml 中也要添加 log4j 的jar  包依赖)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=Mede645

db.properties

<?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> <!-- 加载属性文件 -->
<properties resource="config/db.properties">
<!--properties中还可以配置一些属性名和属性值 -->
<!-- <property name="jdbc.driver" value=""/> -->
</properties> <!-- 全局配置参数,需要时再设置 -->
<!-- <settings> </settings> --> <typeAliases>
<!-- 别名定义 -->
<!-- 针对单个别名定义 type:类型的路径 alias:别名 -->
<!-- <typeAlias type="cn.czy.mybatis.po.User" alias="user"/> -->
<typeAlias type="com.ghc.pojo.User" alias="user" />
<!-- 批量别名定义 指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以) -->
<!--<package name="cn.com.mybatis.mapper" />-->
</typeAliases> <!-- 和spring整合后 environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,事务控制由mybatis -->
<transactionManager type="JDBC" />
<!-- 数据库连接池,由mybatis管理 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="Mede645" />
</dataSource>
</environment>
</environments> <!-- 加载 映射文件 -->
<mappers> <!--通过resource方法一次加载一个映射文件 -->
<!--注意这里的路径和xml文件 -->
<mapper resource="mapper/User.xml" />
<!-- <mapper resource="mapper/userMapper.xml" />
<mapper resource="mapper/OrdersMapperCustom.xml"/>--> <!-- 批量加载mapper 指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载 -->
<!-- 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 -->
<!-- 中 上边规范的前提是:使用的是mapper代理方法
<package name="cn.com.czy.mybatis.two.mapper" />--> </mappers> </configuration>

SqlMappingConfig.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 namespace="test"> <!-- 在 映射文件中配置很多sql语句 -->
<!-- 将sql语句封装到mappedStatement对象中,所以将id称为statement的id -->
<!-- parameterType:指定输入 参数的类型,这里指定int型 #{}表示一个占位符号 -->
<!-- #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 -->
<!-- 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称 -->
<!-- resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。 -->
<select id="findUserById" parameterType="int" resultType="user">
SELECT * FROM USER WHERE id=#{value}
</select> <select id="findUserByNameLike" parameterType="java.lang.String" resultType="user">
SELECT * FROM USER WHERE USERNAME LIKE '%${value}%'
</select> <!--OGNL 获取对象的属性值-->
<insert id="addUser" parameterType="user">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select last_insert_id()
</selectKey>
INSERT INTO user(username,birthday,sex,address) values(#{userName},#{birthday},#{sex},#{address})
</insert> <!--删除用户-->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from USER where id = #{id}
</delete> <!--更新用户-->
<update id="updateUser" parameterType="user">
update User set username=#{userName},sex=#{sex} where id=#{id}
</update>
</mapper>

User.xml

log4j.rootLogger=DEBUG,A1
log4j.logger.org.springframework=debug
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

log4j.properties

package com.ghc.pojo;

import java.util.Date;

public class User {
private int id;
private String userName;
private Date birthday;
private String sex;
private String address; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
}
}

pojo对象User代码

下面是比较重要的 怎么读取配置文件然后映射数据库了 测试了

package com.ghc.main;

import com.ghc.pojo.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 java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.io.IOException;
import java.io.InputStream; public class Test { public SqlSessionFactory getSqlSessionFactory() throws IOException{
// mybatis 配置文件
String mybatisConfigFile = "config/SqlMappingConfig.xml"; InputStream inputStream = Resources.getResourceAsStream(mybatisConfigFile); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory; } public static void main(String [] args) throws Exception{
new Test().findUserByName();//.findUserById();
new Test().insertUser();
new Test().deleteUser();
new Test().updateUser(); } public void findUserById(){
SqlSession sqlSession = null;
try {
sqlSession = this.getSqlSessionFactory().openSession();
User user = sqlSession.selectOne("test.findUserById",10);
System.out.println("user name: "+user.getUserName());
}
catch(Exception e){
e.printStackTrace();
}
finally{if(sqlSession!=null)
try{
sqlSession.close();
}
catch(Exception e){
e.printStackTrace();
}} } public List<User> findUserByName() throws Exception{
List<User> userList = new ArrayList<User>();
SqlSession sqlSession = this.getSqlSessionFactory().openSession();
userList = sqlSession.selectList("test.findUserByNameLike","小明");
for(User user:userList){
System.out.println(user.getUserName());
}
sqlSession.close();
return userList;
} public void insertUser() throws IOException{
User user = new User();
//user.setId(42);
int temp = user.getId();
user.setAddress("麓谷");
user.setBirthday(new Date());
user.setSex("女");
user.setUserName("王老五");
SqlSession sqlSession = this.getSqlSessionFactory().openSession();
sqlSession.insert("test.addUser",user);
sqlSession.commit();
sqlSession.close();
} public void deleteUser() throws IOException{
SqlSession sqlSession = this.getSqlSessionFactory().openSession();
sqlSession.delete("test.deleteUser",42);
sqlSession.commit();
sqlSession.close();
} public void updateUser()throws IOException{
SqlSession sqlSession = this.getSqlSessionFactory().openSession();
User user = new User();
user.setUserName("钻石王老五");
user.setId(43);
user.setSex("男");
sqlSession.update("test.updateUser",user);
sqlSession.commit();
sqlSession.close();
}
}

com.ghc.main.Test

下一篇我将代入 dao 层开发

mybatis 不整合spring 入门小例子的更多相关文章

  1. Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子

    Selenium WebDriver + Grid2 + RSpec之旅(三) ----入门小例子 第一个例子都是比较简单的博客园登录界面,就像学习编程语言时候都是从Hello,World!开始. 1 ...

  2. Spring aop 小例子demo

    由于最近的服务项目提供接口有一个需求,所有操作都必须检查操作的服务可用,所以感觉Aop特别适合实施.完成学习的小例子. 关于spring-Aop原理:http://m.oschina.net/blog ...

  3. 基于vue-cli、elementUI的Vue超简单入门小例子

    - 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...

  4. Ajax入门小例子

    大牛文章:http://www.cnblogs.com/guduoduo/p/3681296.html                               ---Ajax基础学习 http:/ ...

  5. backbone入门小例子

    最近听了个backbone的分享,为了避免听不懂,就先做了个小例子 例子很简单,效果如下 基本视图模板: <script type="tex/template" id=&qu ...

  6. spring+spring mvc+JdbcTemplate 入门小例子

    大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒)    https://www.cnblo ...

  7. Spring MVC 简介及入门小例子

    说明:文章内容全部截选自实验楼教程[Spring MVC 简易教程] 一.什么是 Spring MVC Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring ...

  8. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  9. SpringBoot_MyBatisPlus快速入门小例子

    快速入门 创建一个表 我这里随便创建了一个air空气表 idea连接Mysql数据库 点击右侧database再点击添加数据库 找到Mysql 添加用户名,密码,数据库最后点击测试 测试成功后在右侧就 ...

随机推荐

  1. TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络

    1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...

  2. java批量爬取电影资源

    摘要 网上有很多个人站来分享电影资源,其实有时候我们自己也想做这个一个电影站来分享资源.但是这个时候就有一个问题,电影的资源应该从哪里来呢?难道要自己一条条手动去从网络上获取,这样无疑是缓慢而又效率低 ...

  3. Js_cookie保存登录名

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  4. Jmeter目录文件讲解

    1.bin:核心可执行文件,包含配置 2.windows启动文件:jmeter.bat mac或linux启动文件:jmeter jmeter-server:mac或linux分布式压测启动文件 jm ...

  5. Unity3D — — UGUI之简易背包

    Uinity版本:2017.3 最近在学Siki老师的<黑暗之光RPG>教程,由于教程内用的是NGUI实现,而笔者本人用的是UGUI,所以在这里稍微写一下自己的实现思路(大致上和NGUI一 ...

  6. SQL手工注入漏洞测试(Sql Server数据库)

    还是先找到注入点,然后order by找出字段数:4 通过SQL语句中and 1=2 union select 1,2,3……,n联合查询,判断显示的是哪些字段,就是原本显示标题和内容时候的查询字段. ...

  7. UI Recorder 安装教程(二)

    前言: UI Recorder支持无线native app(Android, iOS)录制, 基于macaca实现:https://macacajs.com/ 本次教程只针对无线native app( ...

  8. 在Mac系统下配置PHP运行环境

    概述 Mac系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apache 启动Apa ...

  9. Final互评------《I do》---- 二次元梦之队

    一.基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题; N(Need,需求):该产品是一款休闲类的解密游戏,背景是编程知识.作为一款休闲游戏,有着基本的娱乐功能,可以给用 ...

  10. Notes of Daily Scrum Meeting(12.19)

    今天工作进展的速度别昨天稍有提高,希望大家再接再厉!加油! 团队任务总结如下: 团队成员 今日团队工作 陈少杰 重新尝试使用get等方法进行网络连接的调试 王迪 调试搜索功能中测出的问题 金鑫 测试已 ...