`

ibatis配置

 
阅读更多

 

包:相关数据库jdbc的jar包,ibatis包

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

 

SqlMap.properties

 

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ibatis
username=root
password=

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

 

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="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="ibatis/app/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.model.Student" />
 
 <!--
 <resultMap class="com.zd.model.Student" id="Student">
     <result property="id" column="id"/>
     <result property="name" column="name"/>
     <result property="birth" column="birth"/>
     <result property="score" column="score"/>
 </resultMap>
  -->
 

 <!-- 这样以后改了sql,就不需要去改java代码了 -->
 <!-- id表示select里的sql语句,resultClass表示返回结果的类型 -->
 <select id="selectAllStudent" resultClass="Student">
  select *
  from tbl_student
 </select>
 
 <select id="selectStudentName" resultClass="Student">
  select id, Name
  from tbl_student
 </select>

 <!-- parameterClass表示参数的内容 -->
 <!-- #表示这是一个外部调用的需要传进的参数,可以理解为占位符 -->
 <select id="selectStudentById" parameterClass="int" resultClass="Student">
  select * from tbl_student where id=#id#
 </select>

 <!-- 注意这里的resultClass类型,使用Student类型取决于queryForList还是queryForObject -->
 <select id="selectStudentByName" parameterClass="String"
  resultClass="Student">
  select name,birth,score from tbl_student where name like
  '%$name$%'
 </select>

 <insert id="addStudent" parameterClass="Student">
  insert into
  tbl_student(name,birth,score) values
  (#name#,#birth#,#score#);
  <selectKey resultClass="int" keyProperty="id">
   select @@identity as inserted
   <!-- 这里需要说明一下不同的数据库主键的生成,对各自的数据库有不同的方式: -->
   <!-- mysql:SELECT LAST_INSERT_ID() AS VALUE -->
   <!-- mssql:select @@IDENTITY as value -->
   <!-- oracle:SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL -->
   <!-- 还有一点需要注意的是不同的数据库生产商生成主键的方式不一样,有些是预先生成 (pre-generate)主键的,如Oracle和PostgreSQL。
    有些是事后生成(post-generate)主键的,如MySQL和SQL Server 所以如果是Oracle数据库,则需要将selectKey写在insert之前 -->
  </selectKey>
 </insert>
 
 
 <insert id="addStudent2" parameterClass="Student">
     insert into tbl_student
     (id, name, birth, score)
     values(#id#, #name#, #birth#, #score#);
   
 </insert>

 <delete id="deleteStudentById" parameterClass="int">
  <!-- #id#里的id可以随意取,但是上面的insert则会有影响,因为上面的name会从Student里的属性里去查找 -->
  <!-- 我们也可以这样理解,如果有#占位符,则ibatis会调用parameterClass里的属性去赋值 -->
  delete from tbl_student where id=#id#
 </delete>

 <update id="updateStudent" parameterClass="Student">
  update tbl_student set
  name=#name#,birth=#birth#,score=#score# where id=#id#
 </update>

</sqlMap>

 

 

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


public class StudentDao implements IStudentDao {
 
 private static SqlMapClient sqlMapClient = null;

 // 读取配置文件
 static {
  try {
   Reader reader = Resources
     .getResourceAsReader("SqlMapConfig.xml");
   sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
   reader.close();
  } catch (IOException e) {
   System.out.println("读SqlMapConfig.xml 出错");
   e.printStackTrace();
  }
 }

 
 public List<Student> selectAllStudent() throws SQLException {
  List<Student> list = sqlMapClient.queryForList("selectAllStudent");
  return list;
 }
 
 public List<Student> selectStudentName() throws SQLException {
  List<Student> list = sqlMapClient.queryForList("selectStudentName");
  return list;
 }
 
 
 public boolean addStudent(Student student)throws SQLException{
  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 void save(Student stu) throws Exception{
  sqlMapClient.insert("addStudent2", stu);
 }
 
 
 public Student getStudent(int id) throws SQLException{
  Student stu = (Student) sqlMapClient.queryForObject("selectStudentById", id);
  return stu;
  
 }
 
 
 public int delete(int id) throws SQLException{
  int num = sqlMapClient.delete("deleteStudentById", id);
  return num;
 }
 
 public List findStudent(String name) throws SQLException{
  List stuList = sqlMapClient.queryForList("selectStudentByName", name);
  return stuList;
 }

分享到:
评论

相关推荐

    ibatis 配置文件详解

    ### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...

    常用ibatis配置

    标题中提到的“常用ibatis配置”指的是在使用iBatis这一数据持久层框架中,常见的配置用法和技术点。iBatis(现称为MyBatis)是一个流行的Java持久层框架,它通过使用XML或注解的方式,将SQL语句与对象进行映射,...

    ibatis配置文件、映射文件详解

    ### ibatis配置文件、映射文件详解 #### 1. SQL Map Config 文件详解 在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它...

    ibatis配置文件

    标题:“ibatis配置文件” 描述:“详细的ibatis配置文件,初来乍到,先打个招呼...” 在本文中,我们将深入探讨ibatis配置文件的关键组成部分及其如何影响ibatis框架的运行机制。ibatis(现在通常称为MyBatis)是...

    ibatis配置文件信息

    ### ibatis配置文件信息 #### 一、简介 在Java开发领域中,ibatis(现称为MyBatis)是一款优秀的持久层框架,它通过XML或注解的方式将接口方法与SQL语句绑定起来,实现对象关系映射(ORM)功能。ibatis的主要优势...

    ibatis配置文件模板

    下面我们将详细探讨Ibatis配置文件模板中的关键组成部分,包括`SqlMap.properties`、`SqlMapConfig.xml`以及与JavaBean的映射文件。 1. **SqlMap.properties** 这是Ibatis的属性配置文件,主要用于存放数据库连接...

    spring+ibatis配置实例

    "spring+ibatis配置实例"这个项目提供了一个完整的开发环境,包含所需的依赖包和标准化的项目结构,对初学者或开发者来说极具价值。 Spring是一个全面的Java应用框架,它提供了依赖注入(Dependency Injection,DI...

    ibatis配置文件自动加载组件

    标题 "ibatis配置文件自动加载组件" 涉及的核心技术是MyBatis的自动配置加载功能,这在开发过程中极大地提高了效率,使得开发者无需每次修改XML映射文件后手动重启服务。MyBatis是一个优秀的Java持久层框架,它简化...

    log4j和ibatis配置文档

    《log4j与iBatis配置详解》 在软件开发中,日志管理和数据库操作是两个至关重要的环节。Log4j作为Java世界里最流行的日志框架之一,它提供了强大的日志记录功能,帮助开发者追踪应用程序运行过程中的信息、警告、...

    ibatis 配置教程 本人通过此文档学会写ibatis实例

    ### ibatis配置教程详解 #### 一、简介与准备工作 ibatis是一款优秀的持久层框架,它简化了数据访问层的繁琐工作,使开发者能够更加专注于业务逻辑的开发。本教程将详细讲解如何配置ibatis环境,并通过实际示例来...

    spring ibatis 配置(包括事务管理)

    在整合Spring和iBatis框架时,我们需要进行一系列的配置工作,以便于让Spring负责管理iBatis的数据访问层。Spring作为一个强大的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器,可以方便地...

    stvrts+ibatis配置

    对于“stvrts+ibatis配置”这个主题,我们主要关注的是如何在实际开发中整合STVR(一个可能自定义或特定的框架)与iBatis,这是一个流行的数据访问层框架,用于简化Java应用程序中的SQL操作。以下是对这个配置的详细...

    Spring+iBatis配置[归类].pdf

    【Spring+iBatis配置归类】的文档主要涵盖了Spring框架与iBatis集成的细节,旨在简化数据库访问的代码,并提供统一的异常处理机制。在本文档中,我们将深入探讨Spring如何与iBatis协同工作,包括JavaBean实体、映射...

    ibatis相关配置

    ### Ibatis配置详解 1. **全局配置文件(ibatis-config.xml)** 全局配置文件是Ibatis系统的起点,它包含了数据源、事务管理器、插件、类型别名等整体设置。例如: ```xml &lt;!DOCTYPE configuration PUBLIC "-/...

    IBATIS 配置+简单案列

    **IBATIS 配置详解** IBATIS 是一款优秀的持久层框架,它为Java应用程序提供了灵活的数据库访问层。它的主要目标是简化数据库操作,将SQL与Java代码分离,从而实现更高效的数据库管理和维护。在本教程中,我们将...

    mysql数据库自动生成对应的java实体类和ibatis配置文件

    本话题主要探讨如何自动将MySQL数据库中的表结构转换为Java实体类以及生成相应的iBatis配置文件。 首先,我们需要理解Java实体类(Entity Class)的作用。在Java应用中,实体类通常代表数据库中的表,每个属性对应...

    Spring+iBatis配置[文].pdf

    【Spring+iBatis配置】是软件开发中常见的一种技术整合,用于构建高效、灵活的数据访问层。Spring框架提供了对iBatis的内建支持,使得开发者可以更方便地使用iBatis进行数据库操作,同时利用Spring的优势进行事务...

    struts+spring+ibatis配置

    3. **iBatis 配置**:在SqlMapConfig.xml文件中配置数据源、事务管理器,以及各个Mapper接口对应的XML映射文件。 4. **整合配置**:在Struts的ActionServlet中配置Spring的DispatcherServlet,让Spring接管所有请求...

Global site tag (gtag.js) - Google Analytics