设为首页 收藏本站
查看: 365|回复: 0

[经验分享] 第一个通过的ibatis操作mysql的实际例子

[复制链接]

尚未签到

发表于 2016-10-17 10:12:40 | 显示全部楼层 |阅读模式
  参考地址:http://kin111.blog.iyunv.com/738881/168984/
  
  步骤如下:
1,在eclipse中新建一个工程ibatisnew,然后把mysql和ibatis的jar包导入进去。这两个包(ibatis-2.3.4.726.jar+mysql-connector-java-5.0.8-bin.jar)可以从网上下载,直接拷贝到WEB-INF/lib目录下。

2,建立SqlMapConfig.xml文件
这个文件包含了数据库的配置,和各个数据表对应的xml的引用部分。

文件名: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>

<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/db"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value=""/>
</dataSource>
</transactionManager>

<!-- List the SQL Map XML files. They can be loaded from the
classpath, as they are here (com.domain.data...) -->
<sqlMap resource="test_ibatis/User.xml"/>

</sqlMapConfig>

3,建立SqlMapConfig.xml中引用的User.xml文件,
这个文件对应数据库中的user表,在这个文件中可以定义别名,可以写sql语句。

文件名:User.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 namespace="User">

<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="User" type="test_ibatis.User"/>

<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllUsers" resultClass="User">
select * from user
</select>

</sqlMap>

4,建立user.xml文件中指定的class的文件
这个文件就是一个javabean,和数据库的表的字段相对应,有set和get方法。

文件名;User.java
文件内容:
package test_ibatis;

import java.sql.Date;

public class User {
@Override
public String toString() {
  // TODO Auto-generated method stub
  String str = "id = " + this.id;
  str += " name = " + this.name;
  str += " birthday = " + this.birthday;
  str += " money = " + this.money;
  return str;
}

private int id;
private String name;
private Date birthday;
private float money;

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 Date getBirthday() {
  return birthday;
}

public void setBirthday(Date birthday) {
  this.birthday = birthday;
}

public float getMoney() {
  return money;
}

public void setMoney(float money) {
  this.money = money;
}
}

5,建立DAO程序和实现程序
接口名:IUserDAO.java
内容:
package test_ibatis;

import java.util.List;

public interface IUserDAO {
public List<User> getAllUser();
}

实现类:IUserDAOImpl.java
内容:
package test_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.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
  public class IUserDAOImpl implements IUserDAO {
  private static SqlMapClient client = null;

static {
try {
Reader reader = Resources.getResourceAsReader("test_ibatis/SqlMapConfig.xml");
client = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public List<User> getAllUser() {
// TODO Auto-generated method stub
try {
return client.queryForList("selectAllUsers");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}

1,实现类中要使用ibatis提供的功能,先从xml文件中读取配置,构造SqlMapClient的对象。
2,具体的实现方法,通过调用SqlMapClient提供的方法,指定xml中的id即可执行对应的sql,并返回结果。

6,测试class
文件名:UserDAO.java
文件内容:
package test_ibatis;

public class UserDAO {

/**
* @param args
*/
public static void main(String[] args) {
  // TODO Auto-generated method stub
IUserDAO dao = new IUserDAOImpl();
  for (User user : dao.getAllUser()) {
   System.out.println(user);
  }

}
}
  
  7,sql建表和测试数据user.sql
  drop table user;
create table `db`.`User`(
`id` int,
`name` VARCHAR(50) ,
`birthday` date,
`money` float
);

--填充数据
insert user(id,name,birthday,money) values (1,'zhangsha','1985-01-01',50.0);
insert user(id,name,birthday,money) values (1,'lisi','2009-06-20',470.0);
insert user(id,name,birthday,money) values (1,'shenqi','2009-06-20',500.0);
insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',1000.0);
insert user(id,name,birthday,money) values (1,'gaojiu','2009-06-20',500.0);
--查询结果
select * from user;
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287349-1-1.html 上篇帖子: Mysql中索引和UNION ALL的使用 下篇帖子: 【MySQL】数据库大文本java写入与读出
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表