为了账号安全,请及时绑定邮箱和手机立即绑定

数据库无法写入String类型的数据

数据库无法写入String类型的数据

好好认真学习 2017-03-19 18:11:26
hibernate-release-5.2.9.Finaljunit4.9mysql使用5.1.29这是cfg.xml文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>    <property name="connection.username">root</property>    <property name="connection.password">123456</property>    <property name="connection.driver_name">com.mysql.jdbc.Driver</property>    <property name="connection.url">jdbc:mysql://localhost:3306/webases</property>   <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect </property>           <property name="show_sql">true</property>     <property name="format_sql">true</property>     <property name="hbm2dd1.auto">create</property>    <mapping resource="Student.hbm.xml"/>    </session-factory></hibernate-configuration>这是实体类package hibernate;import java.util.Date;public class Student {      private int sid;      private String sname;      private String gender;      private Date birthday;      private String address;                 public Student(int sid,String sname,String gender,Date birthday,String address){     this.sid=sid;     this.sname=sname;     this.gender=gender;     this.birthday=birthday;     this.address=address;           } public Student(){                }public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}      }这是hbm.xml<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-3-18 17:32:20 by Hibernate Tools 3.5.0.Final --><hibernate-mapping>    <class name="hibernate.Student" table="STUDENT">        <id name="sid" type="int">            <column name="SID" />            <generator class="assigned" />        </id>        <property name="sname" type="java.lang.String">            <column name="SNAME" />        </property>        <property name="gender" type="java.lang.String">            <column name="GENDER" />        </property>        <property name="birthday" type="java.util.Date">            <column name="BIRTHDAY" />        </property>        <property name="address" type="java.lang.String">            <column name="ADDRESS" />        </property>    </class></hibernate-mapping>这是测试类package hibernate;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.junit.After;import org.junit.Before;import org.junit.Test;public class StudentsTest {  private SessionFactory sessionFactory;  private Session session;  private Transaction transaction;@Beforepublic void init(){//创建配置对象Configuration config=new Configuration().configure();config.addClass(Student.class);//创建服务注册对象ServiceRegistry serviceRegistry =new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();//创建会话工厂对象sessionFactory=config.buildSessionFactory(serviceRegistry);//会话对象session=sessionFactory.openSession();//开启事物transaction=session.beginTransaction();}@Afterpublic void destroy(){transaction.commit();//提交事物session.close();//关闭会话sessionFactory.close();//关闭会话工厂}@Testpublic void testSaveStudent(){Student s=new Student(1,"张三","男",new Date(),"丽水");session.save(s);}}
查看完整描述

2 回答

?
阿木_木

TA贡献1条经验 获得超1个赞

在mysql 命令窗口输入 show variables likes '%character'。有八条记录。其中character_set_filesystem 为默认的。其余的都改为utf-8。request 请求设置编码为utf-8,数据库配置url 指定为utf-8,"jdbc:mysql://localhost:3306/datebaseWeb?unicode =true&charactersEncoding =utf-8”。修改配置文件。在mysql目录下的my.ini文件。找到default-character-set =latin1,default-character-set-service =latin1,两行代码,把latin1都改为utf-8。一般都是出现在设置数据库,请求还有配置文件上。
查看完整回答
1 反对 回复 2017-03-20
?
15rjgcw

TA贡献1条经验 获得超0个赞

编码问题吧,<property name="connection.url">jdbc:mysql://localhost:3306/webases

?useUnicode=true&characterEncoding=utf-8</property>,这么写写试试,或许有用

查看完整回答
反对 回复 2017-03-19
  • 好好认真学习
    好好认真学习
    useUnicode=true&amp 这样就可以了
  • 15rjgcw
    15rjgcw
    怎么想到的,我一般不会想到&amp,因为并不清楚&amp的用处
  • 15rjgcw
    15rjgcw
    怎么想到的,我一般不会想到&amp,因为并不清楚&amp的用处
点击展开后面1
?
尧叔

TA贡献77条经验 获得超201个赞

问号一般可能是乱码,你保存英文看看正常不,要正常那就是乱码问题,从代码到数据库,到表全部改成utf8


查看完整回答
反对 回复 2017-03-19
  • 2 回答
  • 0 关注
  • 2571 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信