ibatis框架文件配置
最近2天在学ibatis,心里也有一些心得,就把它写下来了。
首先是配置一下ibatis的环境,添加ibatis2.X.jar,mysql-connection-bin.5.1.8.jar,建立一个web项目:
0、写个类User.jsva 有属性:.....(自己写),建个表:user.sql
1、先建一个数据库文件dataSource.properties,内容如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root
2、这是ibatis的核心文件:sqlmap-config.xml,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="dataSource.properties"></properties>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driver}" />
<property name="JDBC.ConnectionURL" value="${jdbc.url}" />
<property name="JDBC.Username" value="${jdbc.username}" />
<property name="JDBC.Password" value="${jdbc.password}" ></property>
</dataSource>
</transactionManager>
<sqlMap resource="com/resource/User.xml" />
</sqlMapConfig>
3、建立一个user.xml文件,该文件里面写的是sql语句,这就是ibatis比hibernate查询数据更灵活的优势所在,简单的CRUD:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<!-- 定义类别名 -->
<typeAlias alias="User" type="com.bean.User" />
<!-- 查询所有 -->
<select id="getAllUsers" resultClass="User">
select *
from user
</select>
<!-- 添加 -->
<insert id="saveUser" parameterClass="User">
insert into user (name,password,sex,address,phone,email)
values
(#name#,#password#,#sex#,#address#,#phone#,#email#)
<selectKey resultClass="int" keyProperty="id">
select last_insert_id()
</selectKey>
</insert>
<!-- 根据ID查询 -->
<select id="getById" parameterClass="int" resultClass="User">
select * from user u where u.id = #id#
</select>
<!-- 删除 -->
<delete id="deleteUser" parameterClass="int">
delete from user where id = #id#
</delete>
<update id="updateById" parameterClass="User">
update user u set u.name=#name#,u.password=#password#,u.sex=#sex#,u.address=#address#,u.phone=#phone#,u.email=#email#
where u.id=#id#
</update>
</sqlMap>
4、最后是测试。写个main()方法,测试一下是否搭建成功
public class IbatisDemo {
public static void main(String[] args) throws IOException, Exception {
// list();
// User user = new User();
// user.setName("ibatis");
// user.setPassword("123");
// user.setSex("男");
// user.setAddress("广州天河");
// user.setPhone("1324567");
// user.setEmail("123@qq.com");
// add(user);
// get(24);
// User user = new User();
// user.setName("ibatis2");
// user.setPassword("1232");
// user.setSex("男");
// user.setAddress("广州天河2");
// user.setPhone("13245672");
// user.setEmail("123@qq.com2");
// user.setId(23);
// update(user);
// delete1(23);
}
public static void list() throws IOException, SQLException{
Reader reader = Resources.getResourceAsReader("sqlmap-config-user.xml");
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
List<User> list = sqlMapClient.queryForList("getAllUsers");
for(User user : list){
System.out.println(user);
}
}
public static void add(User user) throws IOException, SQLException{
Reader reader = Resources.getResourceAsReader("sqlmap-config-user.xml");
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMapClient.insert("saveUser",user);
}
public static void get(Integer id) throws IOException, SQLException{
Reader reader = Resources.getResourceAsReader("sqlmap-config-user.xml");
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
//可以实现 方法一:
//List<User> list = sqlMapClient.queryForList("getById",id);
//for(User user:list){
// System.out.println("----------------"+list.size());
//}
//方法2:
User user0 = (User) sqlMapClient.queryForObject("getById",id);
System.out.println("----------------"+user0.getName());
}
public static void delete1(int id) throws IOException, SQLException{
Reader reader = Resources.getResourceAsReader("sqlmap-config-user.xml");
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMapClient.delete("deleteUser", id);
}
public static void update(User user) throws IOException, SQLException{
Reader reader = Resources.getResourceAsReader("sqlmap-config-user.xml");
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMapClient.update("updateById", user);
}
}
ibatis框架文件配置的更多相关文章
- ssm框架文件配置
1 简介 Spring MVC (web level),采取 MVC 架构,意图取代麻烦的 Servlet 写法,简化 web 层 MyBatis (dao level),意图取代 jdbc 操作数据 ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- FastAPI框架入门 基本使用, 模版渲染, form表单数据交互, 上传文件, 静态文件配置
安装 pip install fastapi[all] pip install unicorn 基本使用(不能同时支持,get, post方法等要分开写) from fastapi import Fa ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- Spring框架入门之基于xml文件配置bean详解
关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...
- yaf框架学习文件配置
文件配置: 在配置php支持yaf的时候,可以设置一个参数yaf.environ:把本地开发设置成develop.测试环境配置成test.生产环境配置成product. [yaf] extension ...
- 关于lnmp下 phalcon和tp框架下的nginx文件配置
vim /etc/nginx/sites-available/default 进入修改目录 1.正常项目配置 server { listen 80 default_server; listen [ ...
- Django(五)框架之模板继承和静态文件配置
https://www.cnblogs.com/haiyan123/p/7731959.html 一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% end ...
随机推荐
- PHP利用socket_bind函数切换IP地址采集数据
在利用PHP进行数据采集的过程中,通常会遇到IP被屏蔽或出现验证码的情况:为了能够继续采集,我们需要切换不同的ip,每访问一次,随机切换一个IP.当然也可以通过收集大量代理,通过切换代理的方式进行采集 ...
- WPF 绑定一(数据源为控件)
xaml: <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.co ...
- java 反射的踩的一个坑
今天工作的时候用到了一个反射.其业务简单描述为:系统启动时将需要定时调用的方法签名保存到数据库中,开启线程定时从数据库中读取对应的方法签名,通过反射生成实例后调用方法.完成一定的定时任务. 写到的方法 ...
- [转]MAC下JDK版本的切换
系统里之前先安装里jdk6的,后台又装里7,安装完成后,java -version 版本是7, 导致我eclipse打不开,一开始的做法是,把7的版本给删除掉. 删除的方法也很简单,在命令行中到 / ...
- 通过FTP将一个数据文件从A服务器下载到B服务器的整个过程
现在的环境如下: 服务器A :192.168.1.104 服务器B:192.168.1.138 需要将A服务器上的某个数据文件下载到B服务器上,传输方式为:FTP 那么,要怎么去实现呢? 首先,需要添 ...
- ASP.NET MVC 技术债务
ASP.NET MVC 缓存.本地化和监控诊断 ASP.NET MVC 认证与授权 Entity Framework 创建数据模型
- docker 感性体验
Docker 1.0正式发布!1.0 版本包含很多新特性,这也是 Docker 的首个产品级的版本.从今天开始,你将会一直听到一个新的概念 —— Docker as a platform ,其组件包括 ...
- Yii2 composer更新后报错: Calling unknown method: yii\web\UrlManager::addRules()
网上搜了好多答案,基本上都是让你在composer.json里面添加这样一段话: "extra": { "asset-installer-paths": { & ...
- C++中的冒泡排序,选择排序,插入排序
最简单的插入排序:思想,两两之间比较,时间复杂度o(n^2) void bubblesort(vector<int>&vec, int n) { if (&vec==NUL ...
- error: format not a string literal and no format arguments [-Werror=format-security]
You can put this in your Application.mk to disable treating those warnings as errors: APP_CFLAGS += ...