Tag: mysql

MySQL Connector / JDBC线程安全吗?

标准的MySQL JDBC驱动程序是否是线程安全的? 具体来说,我想在所有线程中使用单个连接,但每个语句只能在单个线程中使用。 是否存在某些安全的情况,而其他情况则不安全? 你在这里有什么经历?

服务器时区值“AEST”无法识别或代表多个时区

我正在尝试设置一个简单的hibernate应用程序,当我运行它时,我得到一个充满错误的堆栈跟踪。 我的pom.xml文件中有以下maven依赖项: org.hibernate hibernate-core 5.2.0.Final mysql mysql-connector-java 6.0.2 我在本地运行的mysql版本是: 5.7.9, for osx10.11 (x86_64) 我正在运行,似乎是一种非常简单的方法,但仍然会出现错误: // create session factory SessionFactory factory = new Configuration() .configure(“hibernate.cfg.xml”) .addAnnotatedClass(Model.class) .buildSessionFactory(); // create session Session session = factory.getCurrentSession(); Model newModel = new Model(“….”, “…”, “…”); // start a transaction session.beginTransaction(); // save the student object System.out.println(“Saving the model…”); session.save(newModel); 执行上面的操作后,我得到一个很长的堆栈跟踪…… […]

与JDBC到MySQL的持久连接

我有一个使用JDBC连接到MySQL的应用程序。 有些情况下,JDBC连接闲置数小时(甚至几天),并且它失去了与MySQL的连接,然后在尝试执行查询时排除。 什么是最好的解决方案?

什么是Hibernate中的transaction.commit()?

transaction.commit()做什么? Account account = new Account(); account.setId(100); account = (Account) session.get(Account.class, account.getId()); System.out.println(“Before Transaction: Balance = ” + account.getBalance()); double preBal = account.getBalance(); account.setBalance(50000000); Transaction transaction = session.beginTransaction(); session.update(account); account = (Account) session.get(Account.class, account.getId()); System.out.println(“After Transaction: Balance = ” + account.getBalance()); // transaction.commit(); account = (Account) session.get(Account.class, account.getId()); System.out.println(“Pev-Bal=” + preBal + ” Curr-Bal=” + […]

Java MySQL JDBC内存泄漏

好吧,所以我有这个程序有很多(~300)个线程,每个线程都与一个中央数据库通信。 我创建了一个到DB的全局连接,然后每个线程都会创建业务创建语句并执行它们。 在某个地方,我有一个巨大的内存泄漏。 在分析堆转储后,我看到com.mysql.jdbc.JDBC4Connection对象是70 MB,因为它在“openStatements”(哈希映射)中有800,000个项目。 在某个地方它没有正确地关闭我创建的语句,但我不能为我的生活弄清楚在哪里(每次打开一个,我也关闭它)。 有什么想法可能会发生吗?

为什么Spring的jdbcTemplate.batchUpdate()这么慢?

我正试图找到更快的批量插入方法 。 我尝试使用jdbcTemplate.update(String sql)插入几个批处理,其中sql由StringBuilder 构建 ,如下所示: INSERT INTO TABLE(x, y, i) VALUES(1,2,3), (1,2,3), … , (1,2,3) 批量大小正好是1000.我插入了近100批。 我使用StopWatch检查了时间并找出了插入时间: min[38ms], avg[50ms], max[190ms] per batch 我很高兴,但我想让我的代码变得更好。 之后,我尝试使用jdbcTemplate.batchUpdate,如: jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { // … } @Override public int getBatchSize() { return 1000; } }); sql的样子 INSERT INTO TABLE(x, […]

如何检查数据库中是否存在表或列?

我正在尝试制作简单的java代码,以检查MySQL DB中是否存在表和/或列。 我应该使用Java代码进行检查还是创建一个SQL查询字符串并执行它来进行检查? 编辑- @ aleroot – 我尝试使用您的代码,如下所示。 当我运行下面的代码时,我看不到任何表或列。 我只看到这个 – Driver Loaded. Got Connection. 我的DB有很多DB,表和列。 我不知道为什么这个程序正常工作。 import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Tester { static Connection conn; static Statement st; public static void main(String[] args) throws Exception { try { // Step 1: Load the JDBC driver. System.out.println(“Driver […]

BLOB vs. VARCHAR用于在MySQL表中存储数组

我有一个设计决定,我正在寻找一些最佳实践建议。 我有一个java程序,需要在MySQL数据库中存储大量(每天几百个)浮点数组。 数据是固定长度的Double数组,长度为300.我可以看到三个合理的选项: 将数据存储为BLOB。 序列化数据并将其存储为VARCHAR。 将数据作为二进制文件写入磁盘并存储对它的引用。 我还要提一下,这些数据将被频繁读取和更新。 我想使用BLOB,因为这是我过去所做的,它似乎是最有效的方法(例如,保持固定的宽度,不需要转换为逗号分隔的字符串)。 然而,我的同事坚持认为我们应该序列化和使用varchar,原因似乎主要是教条。 如果其中一种方法比另一种更好,那么Java或MySQL具体的原因是什么?

发生JNI错误,请检查您的安装并在Eclipse x86 Windows 8.1中重试

public class LoginCumReg implements ActionListener,KeyListener { private JFrame form; private JTextField txtunm; private JTextField txtnm; private JTextField txteml; private JButton cmdcreate; private JPasswordField txtpass; private JPasswordField txtpassreg; private JButton cmdok; private JLabel lblunm; private JLabel lblpass; private JLabel lbleml; private JLabel lblpassreg; private JLabel lblnm; private JPanel panel_1; public LoginCumReg() { // construct components form […]

值’0000-00-00’不能表示为java.sql.Date

我正在研究一些需要从数据库中提取数据的项目,我使用Spring MVC从DB构建模型来选择数据。 这是我的JSP页面的问题: Date to select: Name to select: Type to select: –SELECT– –SELECT– –SELECT– 如您所见,我尝试使用Spring标记库中的 。 题: 但是当它用这个控制器准备我的模型时: @Controller public class HomeController{ @Autowired private ControllerSupportClass controllerSupportClass; @RequestMapping(value=”/search”, method=RequestMethod.GET) public String search(Model model) { List listOfDates = controllerSupportClass.findAllDatesForm(); List listOfInstitutionsNames = controllerSupportClass.findAllInstitutionsForm(); List listOfInstitutionsTypes = controllerSupportClass.findAllTypesForm(); model.addAttribute(“listOfInstitutionsTypes”, listOfInstitutionsTypes); model.addAttribute(“listOfInstitutionsNames”, listOfInstitutionsNames); model.addAttribute(“listOfDates”, listOfDates); return “search”; } […]