数据库文件
- D:\WEAVER\ecology\WEB-INF\prop\weaver.properties
操作数据库
public static void main(String[] args) {
// 本地e9的demo路径
String rootPath = "E:\\E9\\ecology\\";
GCONST.setRootPath(rootPath);
GCONST.setServerName("ecology");
RecordSet rs=new RecordSet();
rs.execute("select * from hrmresource");
String name="1234";
if(rs.next()){
System.out.println("111");
name=rs.getString("_name");
}
}
- weaver.conn.RecordSet判断数据库类型
/**
* 判断数据库类型
* OA兼容sqlserver和oracle的
*/
public static void getdbType(){
RecordSet rs=new RecordSet();
if("sqlserver".equals(rs.getDBType())){
System.out.println("is sqlserver");
}else{
System.out.println("is oracle");
}
}
- weaver.conn.RecordSet操作数据库,不带事务
代码参考:
/**
* 操作数据库
* 不带事务
* /WEB-INF/prop/weaver.properties
*/
public static void db(){
//1.第一种:这种不安全
RecordSet rs=new RecordSet();
//新增数据
rs.execute("insert into test_xizhilang(name,age)values('1','12')");
rs.executeSql("insert into test_xizhilang(name,age)values('1','2')");
rs.execute("update test_xizhilang set name='张三' where id=1");
rs.execute("delete test_xizhilang where id=1");
rs.execute("select * from hrmresource ");
while(rs.next()){
String id=rs.getString("id");//===rs.getString(1);
String loginid=rs.getString("loginid");
String lastname=rs.getString("lastname");
System.out.println("loginid=="+loginid+";lastname="+lastname);
}
System.out.println("数据库操作完成");
}
- weaver.conn.RecordSet预编译处理,安全性更高
代码参考:
/**
* 预编译处理
* 安全性更高
*/
public static void db_rs(){
RecordSet rs=new RecordSet();
rs.executeQuery("select * from hrmresource where id=?", "49");
if(rs.next()){
System.out.println(rs.getString("lastname"));
}
rs.executeUpdate("insert into test_xizhilang(name,age)values(?,?)", "11","22");
}
- weaver.conn.ConnStatement原生的jdbc,操作数据库
/**
* 操作数据库
* 安全性更高
* 不带事务
*/
public static void db_2(){
try {
//2.第二种:预编译处理sql语句(安全)
ConnStatement statement=new ConnStatement();
String sqlstr="insert into test_xizhilang(name,age)values(?,?)";
statement.setStatementSql(sqlstr);
statement.setString(1 ,"李四");
statement.setString(2 ,"25");
statement.executeUpdate();
//查询
sqlstr="select * from test_xizhilang where id=?";
statement.setStatementSql(sqlstr);
statement.setString(1 ,"3");
statement.executeQuery();
if(statement.next()){
String name=statement.getString("name");
System.out.println("name=="+name);
String age=statement.getString("age");
System.out.println("age=="+age);
}
statement.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
- weaver.conn.RecordSetTrans带事务回滚
代码参考:
/**
* 操作数据库,
* 带事务回滚
*/
public static void db_3(){
//事物处理
RecordSetTrans rst = new RecordSetTrans();
try{
rst.setAutoCommit(false);
rst.executeSql("delete from test_xizhilang where id=5");
rst.executeSql("delete from test_xizhilang where id=4");
String s=null;
s.toCharArray();
rst.commit();
}catch(Exception e){
e.printStackTrace();
rst.rollback();
}
System.out.println("方法执行完毕");
}
- weaver.conn.RecordSet操作数据库里面的存储过程
代码参考:
/**
* 操作数据库里面的存储过程 oracle
* CREATE OR REPLACE PROCEDURE pr_test_xizhilang(
code_1 varchar2,
age_2 varchar2,
flag out integer,
msg out varchar2,
thecursor IN OUT cursor_define.weavercursor) as
begin
insert into test_xizhilang
(name,
age
)
values
(code_1,
age_2
);
open thecursor for
select max(id) from test_xizhilang;
end;
*/
public static void db_5(){
RecordSet rs=new RecordSet();
char flag=Util.getSeparator();
String ProcPara = "王五"+flag+"18";
rs.executeProc("pr_test_xizhilang",ProcPara);
if(rs.next()){
System.out.println("接收的参数="+rs.getString(1));
}
}
操作异构系统数据库
- weaver.conn.RecordSetDataSource操作第三方应用的数据库
代码参考:
/**
* 操作第三方应用的数据库
*/
public static void db_4(){
//访问第三方数据源
String sql1="select * from hrmresource";
RecordSetDataSource rs2=new RecordSetDataSource("xizhilang");
rs2.execute(sql1);
while(rs2.next()){
//下标从1开始
String hehe=rs2.getString(4);
System.out.println("hehe="+hehe);
}
}
白名单文件
- D:\WEAVER\ecology\WEB-INF\prop\weaver_session_filter.properties
限制ip地址文件
日志框架的使用
Ecology底层采用的是log4j日志框架, 可根据环境自定义日志配置
log4j配置文件路径: ecology/WEB-INF/log4jinit.properties
# appender
log4j.logger.debug=DEBUG,debug
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
# 按日期滚动文件
log4j.appender.debug.DatePattern='_'yyyyMMdd'.log'
# 自定义日志文件路径
log4j.appender.debug.File=@debug/debug.log
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
# 输出内容格式
log4j.appender.debug.layout.ConversionPattern=%d{HH:mm:ss.SSS}[%p] %l: %m%n
log4j.additivity.debug=false
- 代码中使用
// 获取自定义的 logger, 其中 debug为配置文件中 log4j.logger.debug中的debug
Logger logger = LoggerFactory.getLogger("debug");
// 支持占位符输出, 不定参数
logger.debug("debug级别消息: {}, {}", "参数1", "参数2");
logger.info("info级别消息!");
logger.warn("warn级别消息!");
logger.error("error级别消息!");