# 常见技术问题

# windows启动报错

.\dbapi.ps1 : 无法加载文件 D:\git\db-api\dist\dbapi-4.0.0-beta\bin\dbapi.ps1,因为在此系统上禁止运行脚本。有关详细信息
,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\dbapi.ps1
+ ~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
  • 这是因为powershell的执行策略默认不允许执行脚本,需要修改执行策略
  • 以管理员身份运行powershell,输入set-executionpolicy remotesigned,之后选择Y即可

# sqlserver 连接失败

  • sqlserver 不同版本的驱动包不一样,对应的驱动class也不一样。在SQL Server 2000 中加载驱动和URL路径的语句是:
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";
  • 而sql server 2005 中加载驱动和url的语句则为
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
  • 如果写法错误将会找不到驱动。

# ubuntu启动报错

  • ubuntu的sh命令默认指向了dash,请使用bash命令替换启动
bash bin/dbapi-daemon.sh start standalone

# sql里写小于号<报错

  • 和mybatis类似,小于号要转义,sql里的小于号写成&lt;

# sql传参不支持 #{}

  • 某些数据库的jdbc驱动并没有完全实现jdbc的规范,驱动不支持sql动态传参(?占位符传参数),请使用新版本的驱动包(如果新版本的驱动实现了相应的jdbc规范),或者使用 ${} 方式替换

# 如何在日志中打印API的sql和参数

  • application.properties文件中设置:
logging.level.JdbcUtil=debug

# 启动后没有日志文件

  • 没有安装JDK,请先安装JDK