您的位置:首页 > 数据库

数据库字段为Date类型,插入操作时如何set值存入数据库。

2016-07-08 09:53 656 查看
场景是:我们现在要增加某一会所的会员信息账户,但是,登记时间数据库中字段类型是Date,而我们获取的是String类型的,直接存是存不进去的,那怎么将String类型的数据存入以Date类型的数据库中呢???

我直接用的纯的MyBatis来测试的,没有整合其他的框架!

一、首先,有一会员信息类:

package com.entity;

import java.io.Serializable;

import java.util.Date;

/**

 * 会员信息类

 * @author NK

 *

 */

public class Admin_nick implements Serializable {
private Integer admin_id;//id
private String admin_code;//会员唯一标识符
private String password;//密码
private String name;//账号
private String telephone;//移动电话
private String email;//邮箱
private Date enrolldate;//登记日期
public Integer getAdmin_id() {
return admin_id;
}
public void setAdmin_id(Integer admin_id) {
this.admin_id = admin_id;
}
public String getAdmin_code() {
return admin_code;
}
public void setAdmin_code(String admin_code) {
this.admin_code = admin_code;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getEnrolldate() {
return enrolldate;
}
public void setEnrolldate(Date enrolldate) {
this.enrolldate = enrolldate;
}

}

会员的登记日期指定的是private Date enrolldate;

注意:Date类型一定要是:java.util.Date

二、其次,定义sql语句和映射信息的文件:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"      

 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="com">
<!-- 查询所有会员信息 -->
<select id="findAll" resultType="com.entity.Admin_nick">
select * from admin_nick
</select>
<!-- 新增会员信息 -->
<insert id="addAdmin" parameterType="com.entity.Admin_nick">
insert into
admin_nick (admin_id,admin_code,password,name,telephone,email,enrolldate)
values
(#{admin_id},#{admin_code},#{password},#{name},#{telephone},#{email},#{enrolldate})
</insert>

</mapper>

我们这里讲一下新增会员信息时,怎么插入时间的操作!

就以纯MyBatis为例进行演示。

三、写一个测试类

package com.test;

import java.io.InputStream;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.entity.Admin_nick;

public class TestMyBatis_1 {
public static void main(String[] args) {

/**获取SqlSession*/
String conf = "SqlMapConfig.xml";
InputStream is = TestMyBatis_1.class.getClassLoader().getResourceAsStream(conf);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = ssf.openSession();

/**插入会员信息*/
Admin_nick admin1 = new Admin_nick();
admin1.setAdmin_id(7);
admin1.setAdmin_code("1007");
admin1.setPassword("161616");
admin1.setName("alince2");
admin1.setTelephone("12222222222");
admin1.setEmail("711111111@qq.com");
//插入类型为Date的字段值
String strTime = "20150718";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date date = null;
try {
//现将String转成Date
date = sdf.parse(strTime);
System.out.println(date);
admin1.setEnrolldate(date);
} catch (ParseException e) {
e.printStackTrace();
}
sqlSession.insert("addAdmin", admin1);
System.out.println("新增会员成功...");
System.out.println("=============================================================");

/**查询所有会员信息,时间的查询*/
List<Admin_nick> list = sqlSession.selectList("findAll");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
String time = null;
for(Admin_nick admin2 : list){
System.out.println(admin2.getAdmin_id()+"\r"+admin2.getAdmin_code()+"\r"+admin2.getName()
+"\r"+admin2.getPassword()+"\r"+admin2.getTelephone()+"\r"+admin2.getEmail());
if(admin2.getEnrolldate() != null){
time = sdf2.format(admin2.getEnrolldate());
System.out.println(time);
}else{
System.out.println("不好意思,时间为空...");
}
}
sqlSession.commit();
sqlSession.close();
}

}

注意:该类的Date类型也必须是java.util.Date类型,和Entity中的Date类型一致,否则,会报错!

当然,这个例子,还要导包:mybatis-3.2.5.jar,ojdbc6.jar,数据库驱动包:mysql-connector-java-5.1.7.-bin.jar

然后,写配置文件,SqlMapConfig.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>  

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

"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">

<configuration>
<environments default="environment">
<environment id="environment">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" 
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>

<mappers>
<mapper resource="com/sql/Admin_nickMapper.xml" />
</mappers>

</configuration> 

然后,就是数据表了:

之后,运行上面的程序,插入数据:

希望对初学者有帮助!谢谢!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息