java程序中的ibatis连接mySql的基本实例


属性文件:SqlMap.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ibatis
username=root
password=gys
SqlMapconfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<!-- 引用jdbc属性的配置文件 -->
<properties resource="com/iflytek/entity/SqlMap.properties" />
<!-- 使用jdbc的事务管理 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}"/>
</dataSource>
</transactionManager>
<!-- 这里可以写多个实体的映射文件 -->
<sqlMap resource="com/iflytek/entity/Student.xml" />
</sqlMapConfig>
Student.xml
<?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使得我们在下面使用Student实体类的时候不需要写包名 -->
<typeAlias alias="Student" type="com.iflytek.entity.Student"/>
<!-- id表示select里的sql语句,resultClass表示返回结果的类型,并且格式化时间 -->
<select id="selectAllStudent" resultClass="Student">
select Id,name,DATE_FORMAT(birth,'%Y-%m-%d %H:%i:%S') as birth,score from tb1_student
</select>
<select id="selectStudentById" parameterClass="int" resultClass="Student">
select * from tb1_student where id=#id#
</select>
<!-- 注意这里的resultClass类型,使用Student类型取决于queryForList还是queryForObject -->
<select id="selectStudentByName" parameterClass="String" resultClass="Student">
select name,birth,score from tb1_student where name like '%$name$%'
</select>
<insert id="addStudent" parameterClass="Student">
insert into tb1_student (name,birth,score) values (#name#,#birth#,#score#)
<selectKey resultClass="int" keyProperty="id">
select @@identity as inserted
</selectKey>
</insert>
<delete id="deleteStudentById" parameterClass="int">
delete from tb1_student where id=#id#
</delete>
<update id="updateStudent" parameterClass="Student">
update tb1_student set name=#name#,birth=#birth#,score=#score# where id=#id#
</update>
</sqlMap>
Student.java
package com.iflytek.entity;
import java.sql.Date;
public class Student {
private int id;
private String name;
private String birth;
private float score;
public Student(){}
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 String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString(){
return "id="+id+"\t name"+name+"\t ajor="+birth+"\t score="+score+"\n";
}
}
IStudentDao.java
package com.iflytek.dao;
import java.util.List;
import com.iflytek.entity.Student;
public interface IStudentDao {
/*
* 添加学生信息
*/
public boolean addStudent(Student student);
/*
* 根据id删除学生信息
*/
public boolean deleteStudentById(int id);
/*
* 更新学生信息
*/
public boolean updateStudent(Student student);
/*
* 查询全部学生信息
*/
public List<Student> selectAllStudent();
/*
* 根据学生姓名模糊查询学生信息
*/
public List<Student> selectStudentByName(String name);
/*
* 根据学生id查询学生信息
*/
public Student selectStudentById(int id);
}
StudentDaoImpl.java
package com.iflytek.daoimpl; import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List; import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.iflytek.dao.IStudentDao;
import com.iflytek.entity.Student; public class StudentDaoImpl implements IStudentDao {
private static SqlMapClient sqlMapClient = null; // 读取配置文件
static {
try {
Reader reader = Resources.getResourceAsReader("com/iflytek/entity/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} public boolean addStudent(Student student) {
Object object = null;
boolean flag = false;
try {
object = sqlMapClient.insert("addStudent", student);
System.out.println("添加学生信息的返回值:" + object);
} catch (SQLException e) {
e.printStackTrace();
}
if (object != null) {
flag = true;
}
return flag;
} public boolean deleteStudentById(int id) {
boolean flag = false;
Object object = null;
try {
object = sqlMapClient.delete("deleteStudentById", id);
System.out.println("删除学生信息的返回值:" + object + ",这里返回的是影响的函数");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (object != null) {
flag = true;
}
return flag;
} public boolean updateStudent(Student student) {
boolean flag = false;
Object object = false;
try {
object = sqlMapClient.update("updateStudent", student);
System.out.println("更新学生信息的返回值:" + object + ",返回影响的行数");
} catch (SQLException e) {
e.printStackTrace();
}
if(object!=null){
flag=true;
}
return flag;
} public List<Student> selectAllStudent() {
List<Student> students=null;
try {
students=sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return students;
} public List<Student> selectStudentByName(String name) {
List<Student> students=null;
try {
students=sqlMapClient.queryForList("selectStudentByName", name);
} catch (SQLException e) {
e.printStackTrace();
}
return students;
} public Student selectStudentById(int id) {
Student student=null;
try {
student=(Student)sqlMapClient.queryForObject("selectStudentById",id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
} }
TestIbatis.java
package com.iflytek.test; import java.sql.Date;
import java.util.List; import com.iflytek.daoimpl.StudentDaoImpl;
import com.iflytek.entity.Student; public class TestIbatis {
public static void main(String[] args) {
StudentDaoImpl studentDaoImpl=new StudentDaoImpl(); //测试插入
Student addStudent=new Student();
addStudent.setName("李四");
addStudent.setBirth(Date.valueOf("2011-09-02"));
addStudent.setScore(88);
System.out.println(studentDaoImpl.addStudent(addStudent)); addStudent.setName("李四2");
addStudent.setBirth(Date.valueOf("1990-09-02"));
addStudent.setScore(98);
System.out.println(studentDaoImpl.addStudent(addStudent));
//根据Id查询
System.out.println(studentDaoImpl.selectStudentById(2)); //根据姓名查询
List<Student> list=studentDaoImpl.selectStudentByName("四");
for(Student student:list){
System.out.println(student);
} //查询所有
List<Student> list=studentDaoImpl.selectAllStudent();
for(Student student:list){
System.out.println(student);
} //更新信息
Student updateStudent=new Student();
updateStudent.setId(1);
updateStudent.setName("李四1+");
updateStudent.setBirth(Date.valueOf("1990-09-07"));
updateStudent.setScore(24);
System.out.println(studentDaoImpl.updateStudent(updateStudent)); //删除数据
Boolean b=studentDaoImpl.deleteStudentById(1);
System.out.println("删除结果:"+b); }
}
java程序中的ibatis连接mySql的基本实例的更多相关文章
- 在java程序中使用JDBC连接mysql数据库
在java程序中我们时常会用到数据库中的数据或操作数据库中的数据,如果java程序没有和我们得数据库连接,就不能实现在java程序中直接操作数据库.使用jdbc就能将java程序和数据库连起来,此时我 ...
- java程序使用ssl证书连接mysql
1. 在mysql服务器上生成证书 openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ...
- 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL
上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...
- Derby安装,创建数据库,在Java程序中使用Derby
1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹, ...
- SparkSQL ThriftServer服务的使用和程序中JDBC的连接
SparkSQL ThriftServer服务的使用和程序中JDBC的连接 此时要注意版本问题,我第一次用的是hive2.1.1的,因为要用sparksql的hive服务,但是sparksql默认的是 ...
- SQL函数TIMEDIFF在Java程序中使用报错的问题分析
需求背景 (读者可略过)司机每天从早到晚都会去到不同的自动售货机上补货,而且补货次数和路线等也是因人而异,补货依据是由系统优化并指派.但是目前系统还无法实施有效指挥和优良的补货策略,司机的补货活动因此 ...
- java程序中的经常出现的的异常处理课后总结
一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JV ...
- Python3中使用PyMySQL连接Mysql
Python3中使用PyMySQL连接Mysql 在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Pyt ...
- Linux上从Java程序中调用C函数
原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...
随机推荐
- 访问IO设备
http://blog.csdn.net/goodluckwhh/article/details/16986871 内存屏障主要解决的问题是编译器的优化和CPU的乱序执行.编译器在优化的时候,生成的汇 ...
- MongoDB 安装、运行、使用、数据恢复
1.安装MongoDB社区版 # . 导入MongoDB public GPG Key sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com ...
- python常用模块之random模块
python常用模块之random模块 在程序中很多会用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串 1.random.randrange():返回1-10之间的 ...
- 提问:错误提示--命名空间“System.Web”中不存在类型或命名空间名称“UI”(是缺少程序集引用吗?) 如何解决??
转自:http://topic.csdn.net/u/20080723/21/7e1e06cb-d013-4675-ba9b-9b39d49d0a0e.html 1) 添加对System.Web.dl ...
- stack组件03
继昨天留下的问题 思路: 结果: 优化: from stark.service.site import site,ModelSatrk from .models import * from djang ...
- 实战maven私有仓库三部曲之一:搭建和使用
在局域网内搭建maven私有仓库,可避免每次都从中央仓库下载公共jar包,另外将A模块作为二方库发布到私有仓库后,B模块可以很方便的引用,今天我们就来实战maven私有仓库的搭建和使用: 原文地址:h ...
- iOS8扩展插件开发配置 [转载]
一.iOS8扩展插件概述 WWDC14除了发布了OS X v10.10和switf外,iOS8.0也开始变得更加开放了.说到开放,当然要数应用扩展(App Extension)了.顾名思义,应用扩展允 ...
- 《selenium2 python 自动化测试实战》(18)——自动化测试模型(一)
线性测试 已经被淘汰了:线性测试就是一个脚本完成一个场景,代码基本没有复用,每一个脚本都要从头开始写——这哪行. 模块化与类库 这个就是分模块:有点类似面系那个对象,把功能(比如登录)单独拿出来,当下 ...
- Tornado之实例和扩展
1.Tornado文件的结构: 1.Controllers控制器 2.Models数据库操作 3.Views前端显示 2.样例 #!/usr/bin/env python # -*- coding: ...
- BZOJ4547 Hdu5171 小奇的集合
题意 有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大值.(数据保证这个值为非负数) 对于100%的数据,有 n<=10^5,k& ...