ibatis mysql_[ibatis]ibatis2.3.4+mysqlCRUD实例

今天也是刚刚接触ibatis于是二话不说先弄了个例子再边用边学习。

首先是下载ibatis。

从http://ibatis.apache.org/java.cgi这里可以下载for java的ibatis。

我这里使用的是ibatis2.3.4。下载地址为:http://apache.etoak.com/ibatis/binaries/ibatis.java/ibatis-2.3.4.726.zip

解压缩后将ibatis-2.3.4.726.jar放到项目的lib文件夹下。

然后在src创建一个package。这里我使用的是com.test.ssi.ibatis。

首先是在package下创建SQLMapConfig.xml来对ibatis进行配置。

/p>

PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"

"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

cacheModelsEnabled="true"

enhancementEnabled="true"

lazyLoadingEnabled="true"

maxRequests="32"

maxSessions="10"

maxTransactions="5"

useStatementNamespaces="false"

/>

=============================================================

这里配置数据源时候可以直接在dataSource中配置。也可以通过使用db.properties中的属性进行配置。这里使用的是db.properties的属性db.properties文件配置如下:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/testssh

user=root

password=12345678=============================================================

配置后就要看看数据表和为表创建映射类以及映射类的xml文件。这里暂时都放在同一个package。

这里使用的表为user表。sql语句如下:CREATE TABLE `user` (

`id` int(11)

NOT NULL auto_increment,

`userid` varchar(20) NOT NULL,

`userpwd` varchar(20) DEFAULT NULL,

`userques` varchar(50) DEFAULT NULL,

`userans`

varchar(50) DEFAULT NULL,

`usermail` varchar(50)

DEFAULT NULL,

`integral` int DEFAULT 0,

`sex` varchar(6)  DEFAULT NULL,

`realname` varchar(50) DEFAULT

NULL,

PRIMARY KEY  (`id`)

) TYPE=MyISAM

DEFAULT CHARSET=utf8;=============================================================

然后创建相应的映射类User.java

package com.test.ssi.ibatis;

/**

* User entity.

*

* @author MyEclipse Persistence Tools

*/

public class User implements java.io.Serializable {

// Fields

private Integer id;

private String userid;

private String userpwd;

private String userques;

private String userans;

private String usermail;

private Integer integral;

private Integer grade;

private String sex;

private String realname;

/** default constructor */

public User() {

}

/** full constructor */

public User(String userid, String userpwd, String userques, String userans,

String usermail, Integer integral, Integer grade, String sex,

String realname) {

this.userid = userid;

this.userpwd = userpwd;

this.userques = userques;

this.userans = userans;

this.usermail = usermail;

this.integral = integral;

this.grade = grade;

this.sex = sex;

this.realname = realname;

}

// Property accessors

public Integer getId() {

return this.id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUserid() {

return this.userid;

}

public void setUserid(String userid) {

this.userid = userid;

}

public String getUserpwd() {

return this.userpwd;

}

public void setUserpwd(String userpwd) {

this.userpwd = userpwd;

}

public String getUserques() {

return this.userques;

}

public void setUserques(String userques) {

this.userques = userques;

}

public String getUserans() {

return this.userans;

}

public void setUserans(String userans) {

this.userans = userans;

}

public String getUsermail() {

return this.usermail;

}

public void setUsermail(String usermail) {

this.usermail = usermail;

}

public Integer getIntegral() {

return this.integral;

}

public void setIntegral(Integer integral) {

this.integral = integral;

}

public Integer getGrade() {

return this.grade;

}

public void setGrade(Integer grade) {

this.grade = grade;

}

public String getSex() {

return this.sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getRealname() {

return this.realname;

}

public void setRealname(String realname) {

this.realname = realname;

}

}=============================================================

然后是映射类的xml文件User.xml

/p>

PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"

"http://www.ibatis.com/dtd/sql-map-2.dtd">

SELECT ID as id,

USERID as userId,

USERPWD as userPwd,

USERQUES as userQues,

USERANS as userAns

FROM USER

WHERE ID = #id#

SELECT ID as id,

USERID as userId,

USERPWD as userPwd,

USERQUES as userQues,

USERANS as userAns

FROM USER

UPDATE USER

SET

USERID=#userid#,USERPWD=#userpwd#

WHERE id = #id#

delete from user where id = #id#

insert into user(userid,userpwd) values (#userid#,#userpwd#)

这里定义了获取单个对象和对象列表两种查询和更新,删除,插入的操作。

最后编写一个测试类来试试这些吧。

TestIbatis.java

package com.test.ssi.ibatis;

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.SqlMapClientBuilder;

public class TestIbatis {

public static void main(String args[]) {

try {

com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;

String resource = "com/test/ssi/ibatis/SQLMapConfig.xml";

Reader reader = Resources.getResourceAsReader (resource);

sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

//queryForObject():获取一条记录。

User user =(User)sqlMap.queryForObject("getUser",1);

System.out.println("test ibatis userid is:"+user.getUserid());

//* queryForList():返回一行或多行,可用参数返回固定几行,可用分页。

List list = sqlMap.queryForList("getUsers");

System.out.println("test ibatis query list:"+list.size());

sqlMap.startTransaction();

/*

User newu = new User();

newu.setUserid("daxiaojie");

newu.setUserpwd("132123123");

User u = (User)sqlMap.insert("insertUser",newu);

System.out.println("new user is:"+u.getUserid());

User u = new User();

u.setId(1);

u.setUserid("xiaoyue2");

u.setUserpwd("321321");

//更新记录

int rr = sqlMap.update("updateUser", u);

System.out.println("test ibatis update row:"+rr);

*/

//删除记录

int rr = sqlMap.delete("deleteUser",3);

System.out.println("test ibatis delete row:"+rr);

sqlMap.commitTransaction();

sqlMap.endTransaction();

} catch (IOException e) {

e.printStackTrace();

} catch (SQLException e1){

e1.printStackTrace();

}

}

}

这样一个简单的增删改查就都有了。目前还没有明白如何分页查询,只是试了试普通的数据操作。如果有不对的地方还请大家指出!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值