Tag: jdbc

使用Java中的JTable从MySQL数据库显示记录

我想从MySQL数据库将JTable连接到ResultSet ,以便查看数据。 我正在寻找描述此任务的一些链接或代码片段。 我正在使用Netbeans IDE ..

在MySQL中持久化java LocalDate

我正在编写一个java客户端应用程序,使用:SE 8,MySQL 5.6(Connector / J 5.1),JPA 2.1。 当我尝试持有具有ID(int自动增量),date(LocalDate)的实体时。 抛出exception说: Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B”H\xB2\x0C\x00\x00xpw\x07\x03\x00\x00\x07\xDF\x03\x06x’ for column ‘date’ at row 1 MySQL(我的意思是连接器)不支持新的日期和时间API或什么。 如果是这样我该怎么办? @Entity @Table(schema=”app”) public class Run implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private int id; //number of connections private LocalDate date;

如何在Java 5和6中使JDBC驱动程序工作?

Java 6附带JDBC 4,它与以前版本的Java附带的JDBC不向后兼容。 我们有一个JDBC驱动程序,它必须同时支持Java 5和Java 6.如果我在驱动程序中实现新接口,它在Java 5中不起作用,因为接口也使用新类。 所以我们有两个版本的驱动程序。 有没有办法让Java 5和6都有一个jar?

executeBatch在Prepared Statement上的效果如何?

根据这个问题,问一切:executeBatch方法有效吗? 是否存在性能基准,即…如果要插入1000条记录,使用executeBatch而不是executeUpdate可以节省x个数据库周期数量? 或者这只是一个惯例? 编辑:以下是我正在使用的:Z / OS上托管的DB2 V 8.1,这是一个Web应用程序,它将在最糟糕的情况下一次性插入80,000条记录。

创建我的第一个JDBC领域(Glassfish V3)

我想为我的网络应用程序创建一个JDBC领域。 由于我的用户彼此非常不同,我需要只有一个表,包含域的用户名和密码,我决定在我的数据库中创建一个名为ROLE的新表(与其他用户表的oneToOne关系)。 这就是我的用户域模型的样子: 我正在按照本教程http://blog.gamatam.com/2009/11/jdbc-realm-setup-with-glassfish-v3.html但我被卡住了,我不知道如何继续。 我将发布我在glassfish服务器上制作的配置以及我的文件sun.resources.xml,这样你就可以纠正我,如果我犯了任何错误: 在上面的配置中我有一些疑问,我真的不明白我应该在Group表和Group name Column上做什么。 我在下面的教程中说我应该在文件sun-web.xml中添加安全角色,我想这样做,但我不知道在配置中放什么。 这正是我添加到该文件但我认为这是不正确的。 我应该在该文件中添加角色映射以及如何配置它? /GroupBuySystem Keep a copy of the generated servlet class java code. 该教程的人说他不需要web.xml,但我确实需要该文件。 我应该添加什么web.xml? 这是我的第一个jdbc领域,我很困惑:)

getTimestamp()在MySQL JDBC连接器中进行两次时区转换?

我在MySQL数据库中有一个类型为DATETIME的列,其值为2012-05-07 19:59:12 。 我正在尝试从DB中检索此值,假设它存储在UTC时区中: Calendar cal = Calendar.getInstance(new SimpleTimeZone(0, “UTC”)); Date date = resultSet.getTimestamp(1, cal); System.out.println(date); 它输出( CEST是我当地的时区,比UTC早2小时): Mon May 07 23:59:12 CEST 2012 预期价值是: Mon May 07 21:59:12 CEST 2012 我在JDBC URL中使用这三个参数( Europe/Berlin与CEST相同): ..&useGmtMillisForDatetimes=true&useTimezone=true&serverTimezone=Europe/Berlin 是我的缺陷还是应该在JDBC驱动程序中另外配置的东西? 我正在使用mysql:mysql-connector-java:5.1.20 。

Oracle JDBC charset和4000 char限制

我们正在尝试将UTF-16编码的字符串存储到AL32UTF8 Oracle数据库中。 我们的程序完全适用于使用WE8MSWIN1252作为字符集的数据库。 当我们尝试在使用AL32UTF8的数据库上运行它时,它会转到java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column 。 在下面的测试用例中,只要我们的输入数据不会太长,一切正常。 输入字符串可以超过4000个字符。 我们希望保留尽可能多的信息,即使我们意识到必须切断输入。 我们的数据库表使用CHAR关键字定义(见下文)。 我们希望这可以让我们存储多达4000个字符集。 可以这样做吗? 如果是这样,怎么样? 我们尝试使用ByteBuffer将String转换为UTF8但没有成功。 OraclePreparedStatement.setFormOfUse(…)也没有帮助我们。 切换到CLOB不是一种选择。 如果字符串太长则需要剪切。 这是我们目前的代码: public static void main(String[] args) throws Exception { String ip =”193.53.40.229″; int port = 1521; String sid = “ora11”; String username = “obasi”; String password […]

具有Hibernate 4.0和独立模式方法的MultiTenancy

我使用EJB 3.0和Hibernate 4和PostgreSQL作为我的数据库服务器来创建多租户系统,其中每个租户将具有单独但相同的架构。 我还处于试用阶段,我有3个方案public , company1 , company2都有一个单人桌。 现在我想要做的是根据用户在运行时更改模式,以便他只能查看他/她公司的数据。 这是我的示例代码:实体对象: package com.neebal.domain; import java.io.Serializable; import java.lang.Long; import java.lang.String; import javax.persistence.*; import org.eclipse.persistence.annotations.Multitenant; import org.eclipse.persistence.annotations.MultitenantType; @Entity //@Table(schema = “company1”) public class Person implements Serializable { @Id private Long id; private String name; private static final long serialVersionUID = 1L; public Person() { super(); } public Long […]

如何防止JSP中的SQL注入?

就在上周,我正在做一些PHP的东西。 我使用了一点解决方案来防止SQL注入。 PHP一直是我的人,它有3个解决方案可供使用(可能更多)。 一种是使用stripslashes()函数启用“魔术查询”。 另一个(推荐)是使用mysql_real_escape_string()函数。 那简单,我的问题就解决了。 但是,当谈到JSP时,事情似乎并不那么简单。 我搜索并没有找到任何内置函数来去除斜线或做那些事情(我相信这样的function可以使用基本的JAVA函数实现,但……)。 请帮我保护我的数据库。 我听说过PreparedStatement ,但是真的无法理解它? (我觉得新手的真正含义)。

关于RowMapper在Spring Framework应用程序中使用JDBC的一些疑问

我正在研究如何在Spring Framework中使用JDBC对数据库执行查询。 我正在学习本教程: http : //www.tutorialspoint.com/spring/spring_jdbc_example.htm 在本教程中,我定义了一个StudentDAO接口,它只定义了我想要的CRUD方法。 然后定义Student类,它是我想要在Student数据库表上保留的实体。 然后定义StudentMapper类,它是RowMapper接口的特定实现,在这种情况下,用于将ResultSet中的特定记录(由查询返回)映射到Student对象。 然后我有StudentJDBCTemplate ,它支持我的StudentDAO接口的实现,在这个类中我实现了接口中定义的CRUD方法。 好的,现在我对StudentMapper类如何工作有疑问:在这个StudentJDBCTemplate类中,定义了返回Student数据库表中所有记录列表的方法,这个: public List listStudents() { String SQL = “select * from Student”; List students = jdbcTemplateObject.query(SQL, new StudentMapper()); return students; } 你怎么看,这个方法返回一个List of Student对象,并按以下方式工作: 它首先要做的是定义返回 SQL String中Student数据库表中所有记录的查询。 然后通过jdbcTemplateObject对象上的查询方法调用执行此查询(这是JdbcTemplate Spring类的一个等级** 此方法有两个参数:SQL String(包含必须执行的SQL查询)和一个新的StudentMapper对象,它接受查询返回的ResultSet对象并将其记录映射到新的Student对象上 在这里阅读: http ://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html sayas: 执行给定静态SQL的查询,将每一行映射到Java通过RowMapper对象。 我的疑问与我的StudentMapper使用mapRow()方法在Student对象上映射ResultSet记录这一事实有关,这是代码: package com.tutorialspoint; import java.sql.ResultSet; import java.sql.SQLException; import […]