属性文件: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的基本实例的更多相关文章

  1. 在java程序中使用JDBC连接mysql数据库

    在java程序中我们时常会用到数据库中的数据或操作数据库中的数据,如果java程序没有和我们得数据库连接,就不能实现在java程序中直接操作数据库.使用jdbc就能将java程序和数据库连起来,此时我 ...

  2. java程序使用ssl证书连接mysql

    1. 在mysql服务器上生成证书 openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ...

  3. 被缠上了,小王问我怎么在 Spring Boot 中使用 JDBC 连接 MySQL

    上次帮小王入了 Spring Boot 的门后,他觉得我这个人和蔼可亲.平易近人,于是隔天小王又微信我说:"二哥,快教教我,怎么在 Spring Boot 项目中使用 JDBC 连接 MyS ...

  4. Derby安装,创建数据库,在Java程序中使用Derby

    1,下载并安装Derby: 下载地址:http://db.apache.org/derby /derby_downloads.html,下载最新版本. 我用的是10.5.3.0. 解压缩到任意文件夹, ...

  5. SparkSQL ThriftServer服务的使用和程序中JDBC的连接

    SparkSQL ThriftServer服务的使用和程序中JDBC的连接 此时要注意版本问题,我第一次用的是hive2.1.1的,因为要用sparksql的hive服务,但是sparksql默认的是 ...

  6. SQL函数TIMEDIFF在Java程序中使用报错的问题分析

    需求背景 (读者可略过)司机每天从早到晚都会去到不同的自动售货机上补货,而且补货次数和路线等也是因人而异,补货依据是由系统优化并指派.但是目前系统还无法实施有效指挥和优良的补货策略,司机的补货活动因此 ...

  7. java程序中的经常出现的的异常处理课后总结

    一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JV ...

  8. Python3中使用PyMySQL连接Mysql

    Python3中使用PyMySQL连接Mysql 在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Pyt ...

  9. Linux上从Java程序中调用C函数

    原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...

随机推荐

  1. Ubuntu12.04 中文输入法设置

    1.ibus输入法 Ubuntu系统安装后已经自带了ibus输入法,在英语环境下默认不启动. 配置ibus自动启动可 以在ubuntu系统菜单上选择System(系统)--- Preferences( ...

  2. L163

    Chickens slaughtered in the United States, claim officials in Brussels, are not fit to grace Europea ...

  3. PostgreSQL资料汇总

    慢慢积累一些有用的资料: https://postgrespro.ru

  4. 如何使用JFinal开发javaweb

    介绍开始: 编辑器:MyEclipse; 数据库:MySQL; 服务器:tomcat; 1 首先新建web项目 要强调的是Target runtime必须选择为None.然后点击两次Next,选中创建 ...

  5. 开源一款资源分享与下载工具 —— 电驴(eMule)

    这里分享一款资源分享与下载工具--电驴,其实严格来说,应该叫电骡,这是我维护的版本,eMuleVeryCD版本,VeryCD是一个不错的资源分享网站:http://www.verycd.com/.大概 ...

  6. 【转】Ubuntu16.04安装WPS

    下载安装下载WPS For Linux:http://community.wps.cn/download/ 直接下载:http://kdl.cc.ksosoft.com/wps-community/d ...

  7. win8 ie10 debug flex

    win8 ie10 使用flash debug方法: 删除c:\WINDOWS\system32\Macromed\Flash.c:\WINDOWS\SysWOW64\Macromed\Flash里面 ...

  8. JavaScript 中 OnLoad事件用法总结

    还差一天现在手头上的这套网站就写完了,中午蹭了半天还是没睡好,干脆爬起来把今天上午写到的onload事件给整理一下. 一般用到比较多的就是初始化数据或者效果. 1.直接写在<body>标签 ...

  9. BZOJ1853 Scoi2010 幸运数字 【枚举+容斥】

    BZOJ1853 Scoi2010 幸运数字 Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号 ...

  10. 云设计模式-Design patterns for microservices

    云设计模式 https://azure.microsoft.com/zh-cn/blog/design-patterns-for-microservices/ https://www.cnblogs. ...