属性文件: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程序和数据库连起来,此时我 ...
-
被缠上了,小王问我怎么在 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 ...
-
在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
随机推荐
-
loadView加载(变换成ScrollView)
/**loadView加载,将系统的view变换成ScrollView*/ - (void)loadView{ [super loadView]; UIScrollView *mainScroll = ...
-
OpenCV Open Camera 打开摄像头
这是一个用OpenCV2.4.10打开摄像头的一个例子,参见代码如下: #include <iostream> #include <stdio.h> #include < ...
-
Java下利用Jackson进行JSON解析和序列化
Java下利用Jackson进行JSON解析和序列化 Java下常见的Json类库有Gson.JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行 ...
-
2016-03-15:关于VS中模块定义文件
1 def模块定义文件 在使用开源库libx265时,因x265项目的头文件x265中有如下的宏定义 #ifdef X265_API_IMPORTS #define X265_API __declsp ...
-
Android uiautomator gradle build system
This will guide you through the steps to write your first uiautomator test using gradle as it build ...
-
GWT RPC
GWT RPC GWT RPCRemote Procedure Calls GWT: Google Web Toolkit的缩写,有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 G ...
-
POJ 1804 Brainman(5种解法,好题,【暴力】,【归并排序】,【线段树单点更新】,【树状数组】,【平衡树】)
Brainman Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10575 Accepted: 5489 Descrip ...
-
初探java对象比较
判断两个对象的属性值是否相等的方法, class Book{ private String title; private double price; public Book(String title, ...
-
Java代理模式之Cglib代理
Cglib代理,也叫做子类代理.在内存中构建一个子类对象从而实现对目标对象功能的扩展. CGLIB包的底层是通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类.不鼓励直接使用ASM,因 ...
-
jsp页面继承
功能类似 django template 中的 extends 功能 使用 1.需要下载rapid-core-4.0.jar 导入到web-inf下lib中 下载地址 http://w ...