数据库字段为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>
然后,就是数据表了:
之后,运行上面的程序,插入数据:
希望对初学者有帮助!谢谢!!!
我直接用的纯的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>
然后,就是数据表了:
之后,运行上面的程序,插入数据:
希望对初学者有帮助!谢谢!!!
相关文章推荐
- SqlServer 认证之包含数据库
- MQ产品比较
- MySQL 学习笔记
- Redis 事务
- 如何解决mysql数据库X小时无连接自动关闭
- PlSql链接不上Oracle问题跟踪
- hbase hive
- 数据库唯一性约束
- 读取Excel表格数据存入mongodb数据库
- Oracle修改已有数据的字段类型
- 查看ORACLE 数据库及表信息
- redis入门
- 动态添加表sql
- PL/SQL Developer 免安装步骤
- 使用mycat 读写分离mysql
- 查看oracle当前session
- spring3+security3+struts2+mybatis+memcached+gbac权限架构开源项目
- Memcache
- mysql中怎样配置general log
- mysqldump 的25个小技巧