发表于: 2016-03-05 18:10:21
5 4716
1.mybatis学习
(1)我昨天以为要把下载好的Mybatis的jar包放入Maven工程的本地文件夹内才能导入,在借鉴了网上一个项目后,我发现直接在Maven工程的pom.xml的<dependencies></dependencies>中写入以下内容,保存即可:
<dependency>
<groupId>org.mybatis</groupId> //注意:此处必须写org.mybatis,不能只写mybatis
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version>
</dependency>
(2)在ITtask_1根目录上右键-Source Folder,建立一个资源文件夹,用来存放configuration.xml。
(3)创建一个configuration.xml,步骤:右键-New-Other-XML-XML File-命名-选择“Create XML file from an XML template”.
在该XML配置文件中写入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!--给实体类起一个别名 user -->
<typeAlias alias="Student" type="caojunqi.ITtask_1.student"/>
</typeAliases>
<!--数据源配置 使用mysql数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/caojunqi_1" />
<property name="username" value="root"/>
<property name="password" value="hanlina123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
注:
1.Configuration.xml是mybatis用来建立sessionFactory用的,里面主要包含了数据库连接相关东西,还有java类所对应的别名,比如 <typeAlias alias="User" type="caojunqi.ITtask_1.Student"/> 这个别名非常重要,你在具体的类的映射中,比如User.xml中resultType就是对应这里的,要保持一致。
2.关于typeAlias标签。简而言之,typeAlias标签中的alias是别名,type是具体路径,凡是要用到具体路径的地方,都能用alias代替type。
3.关于environments标签和environment标签。environments里可以配置多个environment,每个environment对应一个数据库环境。具体内容参看链接:http://blog.csdn.net/hupanfeng/article/details/9080545/
4.关于mappers标签。Mappers用于告诉Mybatis去哪里寻找sql映射文件。
(4)建立一个Student类,放在src/main/java资源文件夹下的caojunqi.ITtask_1目录下。该类里面包含所有student表中的属性。
(5)建立一个StudentMapper的接口,也放在src/main/java资源文件夹下的caojunqi.ITtask_1目录下。
(6)在src/main/resources文件夹下新建一个普通文件夹mapper,并在src/main/resources/mapper下新建一个StudentMapper.xml文件,里面写上要对mysql进行哪些操作。
(7)在src/test/java资源文件夹下的caojunqi.ITtask_1目录下新建一个测试类:TestStudent.java,里面写测试代码。
2.一个小插曲。由于数据库中的字段名称不能有大写,我以前创建的caojunqi_1数据库中的student表的主键字段是ID,先在将其改为id。sql语句为“alter table student change ID id int”,后面那个int必须写,不然会报错。但是这样修改后id字段的auto_increment属性没了,所以应该这样改“alter table student change ID id int auot_increment”,但是不能这样改“alter table student change ID id int auto_increment primary key”,会提示定义了两个主键。
3.一个小插曲。突然发现,在Maven中如果想导入或升级jar包很方便,只要在pom.xml中修改即可,无需自己下载。
总结:
1.JAVA在创建类时,其属性的数据类型应该是一个封装类,而不能是基本类型。如可以写“private Integer id”,不能写“private int id”。
2.pom.xml是用来配置Maven工程中需要什么jar包的;configuration.xml是用来将Maven项目和mysql连接起来的;StudentMapper.xml是用来写对数据库的增删改查工作的。
3.在JAVA中,如果要把int转换成Long类型,可以用Long.valueOf(1);如果要把int转换成为Integer类型,可以用Integer.valueOf(24)。
疑问:
1.在environments标签下有一个dataSource标签,关于该标签的drive属性和url属性,经过查资料,我是这样理解的,drive属性应该是规定好的,就是“com.mysql.jdbc.Driver”,大伙都一样,这个应该不能改;url表示数据库的地址,例如我写的是“jdbc:mysql://127.0.0.1:3306/caojunqi_1”,其中的127.0.0.1这个地址只有我自己的计算机能识别,如果别的计算机要连接我电脑上的数据库,是不是应该把这个换成我的IP地址:172.17.218.134?那个3306应该是mysql的端口号,后面的caojunqi_1是我前两天在mysql上建立的数据库名称。
2.为什么我下载的源码中可以在一个source folder下新建一个普通文件夹folder,而我如果在source folder下新建一个普通folder的话,会自动变成一个Package?
评论