@Autowired
private EntityManager entityManger;
public boolean createTables(String tableName){
try {
String sql="SELECT table_name FROM information_schema.TABLES WHERE table_name ='"+tableName+"'";
Query nativeQuery = entityManger.createNativeQuery(sql);
int results = nativeQuery.getResultList().size();
if(results>0){
return true;
}else {
sql="CREATE TABLE `"+tableName+"` (\n" +
" `token` varchar(255) NOT NULL,\n" +
" `bundle_id` varchar(255) NOT NULL,\n" +
" PRIMARY KEY (`token`,`bundle_id`)\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
//创建数据库
// java.sql.Connection connection = entityManger.unwrap(java.sql.Connection.class);
//
// PreparedStatement stmt = connection.prepareStatement(sql);
// stmt.execute();
Query query = entityManger.createNativeQuery(sql);
query.executeUpdate();
return true;
}
}catch (Exception e){
e.fillInStackTrace();
System.out.println("创建数据库失败");
return false;
}
}
/**
* 保存的方法
* @param table
* @param token
* @param bundleId
*/
public void saveTokens(String table, String token, String bundleId) {
//查看是否存在
PushToken tokenRequest = queryToken(table, token, bundleId);
if(tokenRequest==null){
String sql="INSERT into "+table+" VALUES('"+token+"','"+bundleId+"')";
Query query = entityManger.createNativeQuery(sql);
query.executeUpdate();
}
}
/**
* 查询
* @param token
* @param bundleId
* @return
*/
public PushToken queryToken(String tables,String token,String bundleId){
String sql="select * from "+tables+" where token='"+token+"' and bundle_id='"+bundleId+"'";
Query query = entityManger.createNativeQuery(sql);
List resultList = query.getResultList();
if(resultList.size()>0){
Object[] obj = (Object[]) resultList.get(0);
PushToken ret = new PushToken();
ret.setToken(obj[0].toString());
ret.setBundleId(obj[1].toString());
return ret;
}
return null;
}
public List<PushToken> findByBid(String table, String bundleId) {
String sql="select * from "+table+" where bundle_id='"+bundleId+"'";
Query query = entityManger.createNativeQuery(sql);
List resultList = query.getResultList();
if(resultList.size()>0){
List<PushToken> rets = new ArrayList<>();
for (Object ret:resultList){
PushToken tokenRequest = new PushToken();
Object[] obj = (Object[])ret;
tokenRequest.setToken(obj[0].toString());
tokenRequest.setBundleId(obj[1].toString());
rets.add(tokenRequest);
}
return rets;
}
return new ArrayList<>();
}
Jpa使用sql语句创建数据库
最新推荐文章于 2024-05-11 11:02:38 发布