数据库表的数据项如果设置为char、verchar类型,使用PreparedStatement向表中插入字符串数据时,数据会自动在后面添加空格,解决的办法是将数据项类型设置为nverchar。
package Example;
import java.sql.*;
public class MyIcon
{
private Connection con;
public void getConnection()
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
try {
con = DriverManager.getConnection("jdbc:odbc:MySqlTable", "sa", "");
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public void showTable()
{
try {
PreparedStatement sql = con.prepareStatement("select * from student");
ResultSet result = sql.executeQuery();
while(result.next())
{
System.out.print("id:" + result.getString(1));
System.out.print(", name:" + result.getString(2));
System.out.print(", sex:" + result.getString(3));
System.out.println(", birthday:" + result.getString(4));
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public void insertTable()
{
try {
PreparedStatement sql = con.prepareStatement("insert into student values(?, ?, ?, ?)");
sql.setInt(1, 25);
sql.setString(2, "张一");
sql.setString(3, "女");
sql.setString(4, "2012-12-01");
sql.executeUpdate();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void main (String []args)
{
MyIcon icon = new MyIcon();
icon.getConnection();
System.out.println("修改前:");
icon.showTable();
icon.insertTable();
System.out.println("插入后:");
icon.showTable();
}
}
运行结果:
id:18, name:张三, sex:女, birthday:2012-12-02//表中已存在的数据
id:23, name:李某, sex:女, birthday:1999-10-20//表中已存在的数据
id:24, name:张一, sex:女, birthday:2002-12-01//表中已存在的数据
id:25, name:张一 , sex:女, birthday:2012-12-01 //插入的数据,其中name设置为verchar有空格,sex设置nverchar输出没有空格
分享到:
相关推荐
此实例意在解决预处理命令PreparedStatement的setString()方法,在sql2008数据库中写入数据时,会自动补足空格的问题, 同时此实例也解决了当存在自动补足空格的问题时,使用nvarchar可以使查找出来的数据与原输入...
我们知道进行编码和转码工作都是集中在JDBC的两个接口PreparedStatement和ResultSet上进行的,主要涉及PreparedStatement的setString方法以及ResultSet的getString方法。前面我们讲过需要加入一个连接封装层来对...
练习3:使用PreparedStatement插入宠物信息.zip
在java中向访问数据库的sql语句一般放到类PreparedStatement类构造函数中,这里遇到的问题就是向sql语句中用setDate()插入时间时不能用java.util.date,而应用java.sql.date,这里就讲述了解决方法,一种是插入...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...
我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...
通过使用java.sql.preparedstatement,这个问题可以自动解决。一个preparedstatement是从java.sql.connection对象和所提供的sql字符串得到的,sql字符串中包含问号(?),这些问号标明变量的位置,然后提供变量的值...
java.sql.PreparedStatement接口。PrepareStatement接口继承Statement接口。 PrepatredStatement实例包含已编译...每个问号的值必须在语句执行之前,通过适当的Setxxx方法提供。 代码如下: public void add(Bo
MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip
jdbc2.0版 PreparedStatement接口的用法
关于PreparedStatement插入Date类型值的方法.txt
增删改查语句在数据库中运行成功 3).可以使用Statement语句或PreparedStatement语句 4).主函数,用于选择下一步要执行的操作 5).连接方法,连接数据库的4个属性 6).关闭连接 方法,断开数据库连接
主要介绍了JSP中的PreparedStatement对象操作数据库的使用教程,文中举了一些使用PreparedStatement预处理语句对象进行MySQL增删查改的例子,需要的朋友可以参考下
NULL 博文链接:https://huiminchen.iteye.com/blog/1097332
第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 ...
####Statement和PreparedStatement - PreparedStatement预编译的SQL执行对象 1. 可以避免SQL注入 因为在编译的时候已经把SQL的逻辑固定,不会因为替换进去...- 元数据指 数据库和表的相关信息 - 代码参见 Demo10.java
主要介绍了Java数据库连接PreparedStatement的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
熟练掌握加载JDBC驱动程序 2. 熟练掌握连接MySQL数据库 3. 熟练掌握添加、更新、删除记录 4. 熟练掌握获得指定记录 5. 熟练掌握使用PreparedStatement进行数据库操作