联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2018-06-22 03:56

一、实验目的

1.熟悉MyBatis的配置文件

2.掌握MyBatis映射文件的编写方法

3.掌握基于DAO的开发方法

4.掌握基于动态代理的开发方法

5.进一步学习使用JUNIT单元测试工具

二、实验步骤

1.创建数据库,创建数据表


(1)开启MySQL客户端,执行命令: create database 数据库名

(2)use 数据库名,打开数据库

(3)执行下述建表语句

create table tb_customer(

id int(32) primary key auto_increment,

username varchar(50),

jobs varchar(50),

phone varchar(16)

);


可以用Navicat完成上述任务,过程略。

2.创建项目

在Eclipse的Package Explorer 空白区右键,创建”Dynamic Web Project”(动态WEB项目)


3.加入MyBatis相关Jar包。复制jar包到lib文件夹下,并加入类路径。


右键项目 -> 属性 ->“java build path”-> Libraies -> “Add external jars” -> 找到项目的 lib文件夹,选中全部jar,OK。


4.加入JUNIT jar包引用


右键项目 -> 属性 ->“java build path”-> Libraies -> “Add Library” -> “ JUNIT”,finish


5.配置log4j和数据库连接池属性

在src目录下创建两个文件,扩展名都是.properties.

第一个可命名为log4j.properties,用来设置log4j属性,内容如下:


# Global logging configuration

log4j.rootLogger=ERROR, stdout

# MyBatis logging configuration...

log4j.logger.com.itheima=DEBUG

# Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n


第二个可命名为db.properties,用来设置数据库连接池属性,内容如下:


jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis

jdbc.username=root

jdbc.password=1234


注意修改文件中相应内容。


6.编辑MyBatis的配置文件


在src文件夹下创建MyBatis的配置文件,mybatis-config.xml. 该文件的约束部分:


<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration></configuration>作为该文件的根标记


其余内容:

<properties resource="db.properties" />


<settings>

<setting name="lazyLoadingEnabled" value="true" />

<setting name="aggressiveLazyLoading" value="false" />

<setting name="logImpl" value="STDOUT_LOGGING" />

<settings>


<environments default="mysql">

<environment id="mysql">

<transactionManager type="JDBC" />

<dataSource type="POOLED">

<property name="driver" value="${jdbc.driver}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</dataSource>

</environment>

</environments>

<mappers>

<mapper resource="此处添加mapper文件的引用">

</mappers>


7.编写Bean代码

(1)在项目中创建cn.edu.sdju.soft.bean包,并创建一个class


(2)class的私有属性名可以与数据库表的字段名一致,并确定相应的数据类型。


(3)生成属性的get/set方法


8.设计数据库操作接口


(1)在项目中创建cn.edu.sdju.soft.dao包,并创建一个interface

(2)编写一个接口,用来指定数据库操作。如该接口可规定添加、删除、修改(CRUD)、查询和返回列表五项操作。


其中,添加操作可参考:public boolean addObject(Object obj);


返回列表可参考:public List<Object>  findAllObject();


五项操作都实现的话工作量会稍大,可根据实际情况选择实现五项操作中的1~5项。


9.编写MyBatis的映射文件(*.Mapper.xml)


映射文件存放在cn.edu.sdju.soft.mapper包中


与增删改查对应的字标记分别是

<insert></insert>

<delete></delete>

<update></update>

<select></select>

这些子标记里要分别指定id,parameterType和resultType三个属性


10.编写工具类,实现单例模式创建SqlSessionFactory对象


在项目中创建cn.edu.sdju.soft.util包,用于存放工具类。


工具类代码的设计思路


1.声明静态私有SqlSessionFactory类型的属性。

2.在静态代码段中读取MyBatis的配置文件

参考代码 :


Reader类全限定名:

java.io.Reader reader =

org.apache.ibatis.io.Resources.getResourceAsReader("Mybatis配置文件名");


3.在静态代码段中实例化SqlSessionFactoryBuilder类,并调用该类的build方法实例化工厂, Reader的实例作为build()方法的参数。


4.创建工具类的私有无参构造方法(很重要)


5.定义工具类的静态方法,该方法用于返回SqlSession实例。调用sessionFactory的openSession()方法获取session,返回。


11.编写测试类

在项目中创建cn.edu.sdju.soft.test包,并创建测试类。

测试类代码编写思路

(1)利用工具类的静态方法获取SqlSession

(2)调用SqlSession的对应方法,selectOne, selectList, insert, delete, update

(3)输出结果

(4)关闭session




附:java语言命名规范


●选择有意义并且具有描述性的名字(见名知意).

●变量和方法:

小写.如果包含多个单词,第一个单词第一个字母小写,其余单词第一个字母大写。如:radius,area,computeArea.

●类名、接口名:

每个单词第一个字母大写。如 ComputeArea.

●常量名:

所有字母都大写,用下划线连接每个单词。如PI ,  MAX_VALUE

●包名: 所有字母小写,用.连接每个单词。


Naming Conventions of Java Language

●Choose meaningful and descriptive names.

●Variables and method names:

Use lowercase. If the name consists of several words, concatenate all in one, use lowercase for the first word, and capitalize the first letter of each subsequent word in the name. For example, the variables radius and area, and the method computeArea.

●Class names:

Capitalize the first letter of each word in the name.  For example, the class name ComputeArea.

●Constants:

Capitalize all letters in constants, and use underscores to connect words.  For example, the constant PI and MAX_VALUE


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp