Tag: mysql

如何将值动态加载到Tomcat的Context XML文件中

鉴于Tomcat的Context XML文件往往包含敏感信息(通常包括连接到数据库所需的凭据),如何从纯文本context.xml以外的源动态加载这些值?

用Java读取MySQL二进制(16)UUID

这应该是一个非常简单的问题,我只是缺少一些基本的东西,而且我正在’其中一天……’不能使用Hibernate或其他ORM。 使用Java PreparedStatement。 MySQL的东西: CREATE TABLE `article` ( `articleID` binary(16) NOT NULL, `publisherID` bigint(20) DEFAULT NULL, PRIMARY KEY (`articleID`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8$$ insert into article ( articleID, publisherID ) values ( (UNHEX(REPLACE(UUID(),’-‘,”))), 1111 ); Java的东西 PreparedStatement ps = connection.prepareStatement( “select articleID, publisherID from article” ); ResultSet rs = ps.executeQuery(); while( rs.next()) { byte[] artIDArr […]

如何在java中将UUID保存为二进制(16)

我有一个表TestTable,列ID为二进制(16),名称为varchar(50) 我一直在尝试将一个有序的UUID存储为PK,就像本文以优化的方式存储UUID一样 我看到UUID作为HEX(blob)保存在数据库中 所以我想从java中保存这个ID,但是我收到了这个错误 数据截断:第1行的列“ID”的数据太长 我目前正在使用库sql2o与mysql进行交互 所以基本上这是我的代码 String suuid = UUID.randomUUID().toString(); String partial_id = suuid.substring(14,18) + suuid.substring(9, 13) + suuid.substring(0, 8) + suuid.substring(19, 23) + suuid.substring(24) String final_id = String.format(“%040x”, new BigInteger(1, partial_id.getBytes())); con.createQuery(“INSERT INTO TestTable(ID, Name) VALUES(:id, :name)”) .addParameter(“id”, final_id) .addParameter(“name”, “test1”).executeUpdate(); 部分ID应该是这样的11d8eebc58e0a7d796690800200c9a66 我在mysql中尝试了这个语句没有问题 insert into testtable(id, name) values(UNHEX(CONCAT(SUBSTR(uuid(), 15, 4),SUBSTR(uuid(), 10, 4),SUBSTR(uuid(), 1, […]

HIbernate无法使用外键删除实体。 外键设置为null

这个问题在很多方面都有问题,但没有一个解决方案对我有用。 我正在尝试删除父实体,我希望也删除所有子实体。 我的实体: @Entity @Table(name = “item”, catalog = “myshchema”) public class Item implements java.io.Serializable { @JoinColumn(name = “item_id”, insertable = false, updatable = false, nullable = false) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true) private Set categories; /* Getters and Setters and other fields*/ } 物品表: CREATE TABLE `item` ( `item_id` int(11) […]

Spring数据与Mysql JSON类型

我们在项目中使用带有JPA的spring数据。 MySQL服务器版本是5.7。 我有两个问题: 1)spring数据是否与持久化对象兼容到MySQL db上的新JSON类型? 换句话说,我希望有一个实体,而不是在其表中有多个列 – 它将包含一个具有JSON类型的列。 2)Spring数据存储库是否与这种机制兼容? 例如(通过存储库接口自动生成CRUD操作代码)?

Java中的MySQL模式解析器?

有谁知道是否有用于解析MySQL模式的java库? 在代码中,我希望能够确定模式中指定的表和字段。 或者我需要自己写吗? 谢谢理查德。 编辑:只是想避免不必要地重新发明轮子:)

使用来自相同表注释的两个外键来hibernate

我正在尝试设计一个酒店应用程序。 我有两个表作为User和Request 。 用户可以是Host或Visitor ,可以互相发送主机请求。 但是没有必要将用户定义为访问者或主机,这对系统来说无关紧要,因此我没有单独的表格。 这种差异在Request表中非常重要,需要将visitor_id和visitor_id保持为外键(使用User表中的user_id主键列映射,因为主机和访问者都是User)。 我的问题是如何在Hibernate中使用Annotation定义这种关系? 我的意思是,Request表中应该有两个外键,它们被映射到User表中的* user_id *主键列。 每个用户可以多次成为主持人或访问者,并且不会发出任何请求。 @Entity public class Request { @Id private Long req_id; …. }

连续PreparedStatement良好做法

我正在连续执行一些SELECT ,我想知道我应该如何处理PreparedStatement 。 示例代码: //Connection conn is already declared PreparedStatement pstmt = null; ResultSet rset = null; try { String sql = “SELECT …”; pstmt = conn.prepareStatement(sql); pstmt.setString(1, someVar); rset = pstmt.executeQuery(); // Use ResultSet // A different query sql = “SELECT …”; pstmt = conn.prepareStatement(sql); pstmt.setString(1, someVar); rset = pstmt.executeQuery(); // Use ResultSet } […]

如何使用java变量将值插入mysql表?

您好我正在尝试将值插入到mysql表中。 我正在尝试这段代码。 我已将值赋给变量,我想将该变量传递给该insert语句。 它是否正确? code int tspent = “1”; String pid = “trng”; String tid = “2.3.4”; String rid = “tup”; String des = ” polish my shoes!”; INSERT INTO `time_entry`(pid,tid,rid,tspend,description) VALUE (‘”+pid+”‘,'”+tid+”‘,'”+rid+”‘,”+tspent+”,'”+des+”‘); 这是我尝试过的,但我无法插入值 try { conn=DBMgr.openConnection(); String sqlQuery = “INSERT INTO `time_entry`(pid,tid,rid,tspend,description) VALUE (‘”+pid+”‘,'”+tid+”‘,'”+rid+”‘,”+tspent+”,'”+des+”‘);”; st = conn.createStatement(); rs = st.executeQuery(sqlQuery); }

Jetty mysql连接池配置错误:javax.naming.NameNotFoundException; 剩余名称’env / jdbc / —(mysql 5.0 + jetty 7.0.1)

我的配置文件 project / WEB-INF / web.xml : ConnectionPool DataSource Reference jdbc/mysql javax.sql.DataSource Container 项目/ WEB-INF /docker-env.xml: jdbc/mysql com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/db user pwd 50 要调用的代码: ctx = new InitialContext(); ds = (DataSource) ctx.lookup(“java:comp/env/jdbc/mysql”); con=ds.getConnection(); 启动docker的脚本: java -DOPTIONS=plus -jar start.jar java -jar start.jar 无论哪种方式开始docker,我都有以下错误: javax.naming.NameNotFoundException; remaining name ‘env/jdbc/mysql’ at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:632) at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:663) at org.eclipse.jetty.jndi.NamingContext.lookup(NamingContext.java:678) at org.eclipse.jetty.jndi.java.javaRootURLContext.lookup(javaRootURLContext.java:110) at javax.naming.InitialContext.lookup(Unknown […]